将第n个对象存储在二进制文件中

时间:2017-12-14 00:23:24

标签: java serialization deserialization

[Java 9]

在尝试通过序列化将许多对象存储到二进制文件中时,我遇到了一个无法直接读取第50个对象的问题,我想到解决问题的最佳方法是循环遍历所有对象。文件,然后选择我想要的那个。这当然是非常低效的,我在想是否有更好的方法来做到这一点。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

不,没有更好的方法可以做到这一点。序列化数据本质上是串行的,而不是随机访问,并且依赖于流中较早的数据,当然还取决于流头部。请参阅对象序列规范的协议部分。

您必须致电readObject() N 次以获取 N 对象。