2014-09-01 149 views
0

我有一個非常大的對象列表,所以我需要轉換一個元素,序列化它,然後,我需要反序列化列表的所有元素,但也一個接一個,因爲它們的大小。我怎樣才能在Java中實現這一點?序列化和反序列化大元素的列表逐一

另外,如果可能的話,編寫一個元素塊並讀取一塊足夠小以適應內存的塊,這是因爲磁盤和內存之間的傳輸,以及如何做到這一點序列化?比方說,我有1000個元素的列表,我想反序列化10個元素,比接下來的10 ...等

感謝

+0

考慮使用除Java序列化以外的_anything else_,如果可以的話。它有一些重要的陷阱。 – jdphenix 2014-09-01 20:17:41

+0

謝謝您的回答,但是您能否提供一些關於該問題的更多信息,以及您會推薦什麼? – Marko 2014-09-01 20:23:06

+0

我或許能寫出一些東西,而不僅僅是評論的價值。在此序列化(http://parleys.com/play/514892290364bc17fc56c508)是一個很好的概述。 – jdphenix 2014-09-01 20:56:13

回答

0

而不是寫一個清單,你可以寫在列表中的元素個別。

這將允許您一次處理一個元素。您可以使用緩衝來提高性能。

+0

謝謝,我認爲這是要做的事情,但你可以給代碼示例嗎?我知道有ObjectOutputStream.writeObject,但我認爲如果我在循環中使用此方法,它將導致序列化對象的覆蓋,只有最後一個將被保存。我如何使用追加,以及如何包含緩衝?謝謝 – Marko 2014-09-01 20:30:31

+0

默認情況下,OOS追加和緩衝區。 – 2014-09-01 20:31:45