如何使用DataInputStream的方法读取DataOutputStream.writeBytes(String)写入的数据?
我真的不知道这个问题!
writeBytes(String)不包括写入长度的任何指示,因此除非您之前输出了长度,否则无法知道要读取多少。
另请注意,writeBytes(String)仅写入字符串中每个字符的低八位而丢弃高位 - 这可能不是您想要的。
String如果你想写出writeUTF包含字符串长度并且可以用DataInputStream.readUTF.
您可以构造 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()));