0

我已经使用 objectstream 和 fileoutputstream 将 HashMap 序列化为文件。这是一个非常庞大的 HashMap,大约有 1.5 亿个条目。当我从文件中读回它时,加载需要很长时间(约 40 分钟)。

我使用 FileOutputStream 后跟 ObjectOutputStream 来序列化对象。然后,我使用 ObjectInputStream 和 FileInputStream 来读取对象。

是否有推荐的方法来读取序列化的 HashMap 以便从文件中快速加载?

4

1 回答 1

6

使用 BufferedInputStream 应该可以提高性能:

ObjectInputStream in = 
    new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));

当然,BufferedOutputStream 也会提高序列化的性能。

使用这些缓冲流可以一次性从文件系统中读取大块字节,而不是逐字节读取。阅读文档以获取更多信息。

于 2013-04-07T14:56:15.047 回答