【发布时间】:2018-05-27 23:56:39
【问题描述】:
[Java 9]
在尝试通过序列化将许多对象存储到二进制文件中时,我遇到了一个问题,我无法直接读取第 50 个对象,而我认为解决该问题的最佳方法是遍历文件,然后选择我想要的。这当然是非常低效的,我在想是否有更好的方法来做到这一点。感谢您的帮助!
【问题讨论】:
-
您是一次序列化一个对象吗?如果是这样,您如何知道第 n 个对象在文件中的哪个位置开始?考虑到您认为效率很重要,您在谈论多少个对象?如果很多,您应该考虑使用数据库,例如NoSQL 存储。
-
有几种方法可以做到这一点。例如,您可以一次序列化它们,首先在内存中找出长度,然后在文件中的每个序列化对象前面加上对象的长度,这样您就可以快速跳过不需要的对象读。还有其他选择。但是 SO 不是一个很好的网站,可以解决像这样可能有许多非常不同答案的广泛问题。
标签: java serialization deserialization