2014-09-01 146 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