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