这个问题在这里已经有了答案:
9年前关闭。
Possible Duplicate:
What is the fastest way to read a large number of small files into memory?
我有大量的小文本文件(大小为 29 字节),但其中有 1000 多个。
我正在尝试使用 BufferedReader 读取,但考虑到所有文件都存储在本地,它似乎很慢。我们已经尝试使用非常少量的这些文件(等 12 个)并且读取几乎是瞬时的。
是否有更有效的读取方式或缓冲区某处存在瓶颈?
谢谢!
最佳答案
瓶颈最有可能出现在打开文件中,您对此无能为力。
(评论中链接的 Q&A 建议使用内存映射文件。但这直接与 Javadoc 相矛盾,后者指出设置映射的开销很大,而且您只会从大文件中获得返回。一些数学表明,他的基准测试使用的文件平均大小为 5642 字节......与您的 29 字节文件大小相比,这是巨大的。)
获得牵引力的唯一方法是使用可以有效读取/加载的轻量级格式将小文件组合成一个大文件。除非您避免压缩,否则 ZIP 不是最好的主意。
关于java - 在 Java 中高效读取大量小文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12258156/