在Java中加载序列化hashmap的最快方法是什么?

Lon*_*guy 0 java hashmap

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

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

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

JB *_*zet 6

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

ObjectInputStream in = 
    new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
Run Code Online (Sandbox Code Playgroud)

当然,BufferedOutputStream也可以提高序列化的性能.

使用这些缓冲流允许一次从文件系统读取大块字节,而不是每字节读取字节.阅读文档以获取更多信息.