1

如何使用DataInputStream的方法读取DataOutputStream.writeBytes(String)写入的数据?

我真的不知道这个问题!

4

2 回答 2

2

writeBytes(String)不包括写入长度的任何指示,因此除非您之前输出了长度,否则无法知道要读取多少。

另请注意,writeBytes(String)仅写入字符串中每个字符的低八位而丢弃高位 - 这可能不是您想要的。

String如果你想写出writeUTF包含字符串长度并且可以用DataInputStream.readUTF.

于 2013-09-06T14:16:20.570 回答
0

您可以构造 your DataOutputStreamwith anByteArrayOutputStream和 your DataInputStreamwith an ByteArrayInputStreamusing as buffer from 的字节数组 ByteArrayOutputStream,例如:

ByteArrayOutputStream inMemory = new ByteArrayOutputStream ();
DataOutputStream out = new DataOutputStream (inMemory);

DataInputStream in = new DataInputStream (new ByteArrayInputStream  (inMemory.toByteArray()));
于 2013-09-06T14:20:55.983 回答