【发布时间】:2018-11-13 12:04:06
【问题描述】:
ObjectOutputStream 和 DataOutputStream 中的同一个方法(writeInt())写入不同的数据?原始类型不应该是相等的吗?
// Output: 14 bytes file
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("file_14bytes.bin"));
out.writeInt(1);
out.writeInt(2);
out.close();
// Output: 8 bytes file
DataOutputStream dout= new DataOutputStream(new FileOutputStream("file_8bytes.bin"));
dout.writeInt(3);
dout.writeInt(4);
dout.close();
例如,我想在第一次连接时使用 objectoutputstream 的 writeObject() 方法发送对象信息,然后使用 OOS 的 writeInt() 循环发送 x、y 浮点数。
【问题讨论】:
-
ObjectOutputStream是您想要使用 Java 序列化的时候(由于包括安全考虑在内的多种原因,这有点不鼓励)。DataOutputStream是您想要完全控制如何写入每个字节的时候。从您的问题来看,您想使用后者。
标签: java networking objectoutputstream dataoutputstream