获取列表中的前几个元素,同时在读取序列化文件时将其他元素保留在内存中

时间:2014-09-27 21:45:30

标签: java serialization indexing

假设我有一个列表对象,其中有100个元素已使用writeObject()序列化到磁盘中。 现在任何人都可以告诉我,如何只读取列表中的前十个元素,同时保留磁盘中的所有其他元素。据我所知,readObject()将整个列表读入内存。所以有任何工作要做。 我想在SPIMI实现索引信息中使用它来进行历史信息。

提前Thanx:)

2 个答案:

答案 0 :(得分:3)

我认为您需要做的是将列表中的对象按顺序序列化到磁盘。如果你这样做,你可以得到前几个并停止阅读。避免序列化整个列表。

答案 1 :(得分:0)

我认为这里的问题是想法本身或存储程序的初始设计。没有办法(不是我所知道的)你能够做你所要求的事情,事实上你自己回答了,readObject()读取整个对象并将其作为Object返回,稍后你将把它转换为List 。

所以我建议你改变你首先存储的方式,比如自己序列化每个对象......或者考虑使用数据库,虽然它可能只是100个元素的过度杀伤,也就是100个不是'对于PC来说,这是一个非常大的数字,如果元素不是那么大的数据结构,那么真的没有意义。