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

Java 如何使用DataInputStream的方法读取DataOutputStream.writeBytes(字符串)写入的数据?,java,io,Java,Io,如何使用DataInputStream的方法读取DataOutputStream.writeBytes(字符串)写入的数据 我真的不知道这个问题 writeBytes(String)不包含写入长度的任何指示,因此除非您之前输出了长度,否则无法知道要读取多少 还请注意,writeBytes(String)只写入字符串中每个字符的底部八位,丢弃高位-这可能不是您想要的 如果您想写出一个字符串请查看writeUTF,它包含字符串长度,并且可以用DataInputStream.readUTF读取,您可以

如何使用DataInputStream的方法读取DataOutputStream.writeBytes(字符串)写入的数据

我真的不知道这个问题

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

还请注意,
writeBytes(String)
只写入字符串中每个字符的底部八位,丢弃高位-这可能不是您想要的


如果您想写出一个
字符串
请查看
writeUTF
,它包含字符串长度,并且可以用
DataInputStream.readUTF

读取,您可以用
ByteArrayOutputStream
DataInputStream
构造
DataOutputStream
ByteArrayInputStream
使用ByteArrayOutputStream
中的字节数组作为缓冲区,例如:

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

DataInputStream in = new DataInputStream (new ByteArrayInputStream  (inMemory.toByteArray()));

您是否只使用
写字节(字符串)
?还是其他
DataOutputStream
方法?