2

我正在尝试将一个大字符串写入我的 DataOutputStream 但是我得到一个UTFDataFormatException说:

String more than 65535 UTF bytes long

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

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

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

无论如何要让大字符串进入这个DataOutputStream或者是否有另一种解决方案。

谢谢!

4

2 回答 2

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();

可能不是,也可能不是完美的,但它有效。

于 2012-11-06T14:22:12.130 回答
0

你用什么来创建OutputStream? 看看这个链接:这里。您进行通信的媒介可能存在限制,您需要在对象上配置一些参数。

于 2012-11-05T14:59:03.257 回答