java - 在 Java 中高效读取大量小文件

标签 java file io

这个问题在这里已经有了答案:




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/

相关文章:

java - 使用编辑距离比较相似的字符串遇到了问题

java - Apache Camel - 在处理器中设置值

r - 将行附加到文件

c++ - 如何在使用 bufferevents 写入 libevent 后关闭套接字?

c# - 如何在 C#、.net 中异步重定向标准错误流而不是进程的标准输出流

java - 如何输出带有可见特殊字符的数据?

java - 在 Maven 站点部署期间生成 JavaDoc 时,抛出 MalformedInputException 错误

java - eclipse "deployment assembly"配置在哪个文件中?

c - 文件输出不正确

file - Bash,不同文件测试的混淆结果(test -f)