1

我正在使用以下 Java 代码将三个对象写入二进制文件。

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

那么我该如何修改 objClass1 中的一些数据并更新文件呢?还将 objClass3 附加到文件末尾。

谢谢....

4

2 回答 2

3

您不能只更新一个对象,您需要覆盖整个文件。从文件中读取所有 3 个对象,然后使用新的 objClass1 版本将它们写回

于 2013-05-08T07:27:15.300 回答
1

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

  • 将每个对象写入单独的文件
  • 使用HashStoreNeodatisdb4o等对象存储
  • 您可以使用 rdms 以序列化方式存储对象( mysql 中的BLOB类型)
于 2013-05-08T07:29:09.523 回答