0
我有一個文件,名爲ArrayList.data
,存儲hashmaps的數組列表。由於我使用的程序的限制,我無法一次添加所有數據,因爲程序會爲每個用戶創建一個新實例。要創建所有用戶數據的數組列表,我需要打開文件,添加用戶數據並關閉文件。附加到存儲在外部文件中的ArrayList
該文件只包含hashmaps的數組列表。有沒有一種方法可以追加到這個hashmap每次,或者我需要繼續使用更新的附加版本替換它?
我有一個文件,名爲ArrayList.data
,存儲hashmaps的數組列表。由於我使用的程序的限制,我無法一次添加所有數據,因爲程序會爲每個用戶創建一個新實例。要創建所有用戶數據的數組列表,我需要打開文件,添加用戶數據並關閉文件。附加到存儲在外部文件中的ArrayList
該文件只包含hashmaps的數組列表。有沒有一種方法可以追加到這個hashmap每次,或者我需要繼續使用更新的附加版本替換它?
你使用Java序列化來存儲ArrayList
?不幸的是,這種機制不允許你增加數據到已經序列化的表單。相反,您將不得不打開文件,反序列化整個ArrayList
,添加一個元素並將其序列化,覆蓋文件中的先前數據。如果列表變大,這種方法是不可行的。
您可以做的是分別序列化每個HashMap
(單個ArrayList<Map<?, ?>>
項目)。這樣,當新項目必須序列化時,您只需打開文件並在最後追加新的Map
。當您想要反序列化它時,只需逐一閱讀Map
並重建ArrayList
即可。
當你說一個文件包含一個數組列表...你的意思是你使用ObjectOutputStream對它進行了序列化? – Ben
數據庫的存在是有原因的,特別是針對您的情況的內存數據庫。然後你可以使用JPA來「序列化」你的實體。 –