字符串对于DataOutputStream来说太大了

时间:2012-11-05 14:55:09

标签: android

我正在尝试将一个大型String写入我的DataOutputStream但是我得到的UTFDataFormatException表示:

String more than 65535 UTF bytes long

当我打电话时会发生这种情况:

byteOut.writeUTF(stringArray.get(i));

byteOut是我的DataOutputStreamstringArray.get(i);是我的字符串。

无论如何都要将大字符串放入此DataOutputStream或是否有其他解决方案。

谢谢!

2 个答案:

答案 0 :(得分:2)

我找到了问题的解决方案,现在就是。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream byteOut = new DataOutputStream(baos);
byte[] data = stringArray.get(i).getBytes("UTF-8");
byteOut.write(data);
byteOut.close();
byte[] input = baos.toByteArray();

可能不是,也可能并不完美,但它确实有效。

答案 1 :(得分:0)

您在创建OutputStream时使用了什么?请看一下这个链接:Here。您有可能通过约束进行通信的媒介,并且您需要在对象上配置一些参数。