附加到存储在外部文件中的ArrayList

时间:2012-10-16 19:52:21

标签: java arrays file

我有一个名为ArrayList.data的文件,用于存储哈希映射的arraylist。由于我正在使用的程序的限制,我无法一次添加所有数据,因为程序为每个用户创建一个新实例。要创建所有用户数据的arraylist,我需要打开文件,添加用户数据并关闭文件。

该文件仅包含散列图的arraylist。有没有办法每次都附加到这个hashmap,或者我是否需要继续用更新的附加版本替换它?

1 个答案:

答案 0 :(得分:2)

您是否使用Java序列化来存储ArrayList?不幸的是,这种机制不允许您以递增方式将数据添加到已经序列化的表单中。相反,您必须打开文件,反序列化整个ArrayList,添加一个元素并将其序列化,覆盖文件中的先前数据。如果列表变大,这种方法是不可行的。

您可以做的是分别序列化每个HashMap(单个ArrayList<Map<?, ?>>项目)。这样,当必须序列化新项目时,您只需打开文件并最后添加这个新的Map。如果要对其进行反序列化,只需逐个阅读每个Map并重新构建ArrayList