我使用objectstream和fileoutputstream将HashMap序列化到一个文件中。这是一个非常巨大的HashMap,有大约1.5亿条目。我从文件中读回来需要很长时间(约40分钟)加载。
我正在使用FileOutputStream,后跟ObjectOutputStream来序列化对象。然后,我使用ObjectInputStream和FileInputStream来读取对象。
是否有推荐的方法来读取序列化的HashMap,以便从文件中快速加载?
答案 0 :(得分:5)
使用BufferedInputStream可以提高性能:
ObjectInputStream in =
new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
当然,BufferedOutputStream也可以提高序列化的性能。
使用这些缓冲流允许一次从文件系统中读取大块字节,而不是每字节读取字节。阅读文档以获取更多信息。