【问题标题】:Append to ArrayList stored in external file附加到存储在外部文件中的 ArrayList
【发布时间】:2012-10-16 19:52:20
【问题描述】:

我有一个名为ArrayList.data 的文件,它存储了一个哈希图数组列表。由于我正在使用的程序的限制,我无法一次添加所有数据,因为该程序为每个用户创建了一个新实例。要创建一个包含所有用户数据的数组列表,我需要打开文件,添加用户数据,然后关闭文件。

该文件仅包含哈希图的数组列表。有没有办法每次都附加到这个哈希图,还是我需要用更新的附加版本替换它?

【问题讨论】:

  • 当你说一个文件包含一个数组列表......你的意思是你用 ObjectOutputStream 序列化它?
  • 存在数据库是有原因的,尤其是针对您的情况的内存数据库。然后你可以使用 JPA 来“序列化”你的实体。

标签: java arrays file


【解决方案1】:

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

您可以做的是分别序列化每个HashMap(单个ArrayList<Map<?, ?>> 项)。这样,当必须序列化新项目时,您只需打开文件并在最后附加这个新的Map。当你想反序列化它时,只需一个接一个地读取每个Map并重构ArrayList

【讨论】:

    猜你喜欢
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2016-03-13
    • 2011-12-18
    相关资源
    最近更新 更多