如何使用DataInputStream的方法读取DataOutputStream.writeBytes(String)写入的数据?
我真的不知道这个问题!
writeBytes(String)
不包括写入长度的任何指示,因此除非您之前输出了长度,否则无法知道要读取多少。
另请注意,writeBytes(String)
仅写入字符串中每个字符的低八位而丢弃高位 - 这可能不是您想要的。
String
如果你想写出writeUTF
包含字符串长度并且可以用DataInputStream.readUTF
.
您可以构造 your DataOutputStream
with anByteArrayOutputStream
和 your DataInputStream
with an ByteArrayInputStream
using as buffer from 的字节数组 ByteArrayOutputStream
,例如:
ByteArrayOutputStream inMemory = new ByteArrayOutputStream ();
DataOutputStream out = new DataOutputStream (inMemory);
DataInputStream in = new DataInputStream (new ByteArrayInputStream (inMemory.toByteArray()));