我需要使用 Java 逐行读取大约 5-6 GB 的大文本文件。
我怎样才能快速做到这一点?
原文由 manoj singh 发布,翻译遵循 CC BY-SA 4.0 许可协议
我需要使用 Java 逐行读取大约 5-6 GB 的大文本文件。
我怎样才能快速做到这一点?
原文由 manoj singh 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
一个常见的模式是使用
如果您假设没有字符编码,您可以更快地读取数据。例如ASCII-7,但不会有太大区别。您对数据所做的操作很可能需要更长的时间。
编辑:一种不太常见的模式,可以避免
line
泄漏的范围。更新:在 Java 8 中你可以做
注意:您必须将 Stream 放在 try-with-resource 块中以确保对其调用 #close 方法,否则在 GC 稍后执行它之前,底层文件句柄永远不会关闭。