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