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

时间:2013-04-07 13:43:15

标签: java hashmap

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

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

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

1 个答案:

答案 0 :(得分:5)

使用BufferedInputStream可以提高性能:

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

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

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