我正在尝试将一个大型String写入我的DataOutputStream但是我得到的UTFDataFormatException
表示:
String more than 65535 UTF bytes long
当我打电话时会发生这种情况:
byteOut.writeUTF(stringArray.get(i));
byteOut是我的DataOutputStream
和stringArray.get(i);
是我的字符串。
无论如何都要将大字符串放入此DataOutputStream
或是否有其他解决方案。
谢谢!
答案 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。您有可能通过约束进行通信的媒介,并且您需要在对象上配置一些参数。