使用ObjectOutputStream更新二进制文件

时间:2013-05-08 07:19:38

标签: java file objectoutputstream

使用java中的以下代码将三个对象写入二进制文件。

oout = new ObjectOutputStream(new FileOutputStream(fileName));
oout.writeObject(objClass1);             
oout.writeObject(objClass2);              
oout.writeObject(objClass3);

那么我怎样才能修改objClass1中的一些数据并更新文件?同时将objClass3附加到文件末尾。

...谢谢

2 个答案:

答案 0 :(得分:3)

您无法仅更新一个对象,需要覆盖整个文件。从文件中读取所有3个对象,然后使用新的objClass1版本

将其写回

答案 1 :(得分:1)

您不能在包含内容的文件的开头写入,因此您需要阅读内容,更新您想要的内容并再次写入所有内容...这不是非常有效,所以我建议2个解决方案:

  • 将每个对象写入单独的文件
  • 使用HashStoreNeodatisdb4o等对象商店
  • 您可以使用rdms以序列化方式存储对象(BLOB类型在mysql中)