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设计为在写入包括基元的任何信息时写入对象并写入一些元数据。
OOS也被缓冲,因此您可能看不到所有立即写入基础流中的字节。
注意:writeInt与DataOutputStream一起使用4个字节。
发送x,y与OOS的writeInt()循环浮动
我建议您使用writeFloat(f)编写浮点数。
如果您有一个浮点数数组,建议您使用writeObject()例如
oos.writeObject(someShape);
oos.writeObject(floatArray);