2012-10-16 20 views
0

我有一個文件,名爲ArrayList.data,存儲hashmaps的數組列表。由於我使用的程序的限制,我無法一次添加所有數據,因爲程序會爲每個用戶創建一個新實例。要創建所有用戶數據的數組列表,我需要打開文件,添加用戶數據並關閉文件。附加到存儲在外部文件中的ArrayList

該文件只包含hashmaps的數組列表。有沒有一種方法可以追加到這個hashmap每次,或者我需要繼續使用更新的附加版本替換它?

+0

當你說一個文件包含一個數組列表...你的意思是你使用ObjectOutputStream對它進行了序列化? – Ben

+0

數據庫的存在是有原因的,特別是針對您的情況的內存數據庫。然後你可以使用JPA來「序列化」你的實體。 –

回答

2

你使用Java序列化來存儲ArrayList?不幸的是,這種機制不允許你增加數據到已經序列化的表單。相反,您將不得不打開文件,反序列化整個ArrayList,添加一個元素並將其序列化,覆蓋文件中的先前數據。如果列表變大,這種方法是不可行的。

您可以做的是分別序列化每個HashMap(單個ArrayList<Map<?, ?>>項目)。這樣,當新項目必須序列化時,您只需打開文件並在最後追加新的Map。當您想要反序列化它時,只需逐一閱讀Map並重建ArrayList即可。

相關問題