是否有任何 Util 方法可以从给定文件中按 Line# 获取行内容?
最佳答案
最简单的方法是将所有行读入一个列表,并在该列表中按编号查找该行。您可以使用
List<String> lines = FileUtils.readLines(file);
My file is 3GB and I don't want to store all the lines in my java memory
我会确保你有足够的内存。您可以以不到 200 美元的价格购买 32 GB。
但是,假设这不是一个选项,您可以通过在将每行的偏移量存储在另一个文件中后读取该文件来索引该文件。它可能是 32 位偏移,但如果您使用 64 位偏移,它会更简单/更具可扩展性。
然后,您可以查找每一行和下一行的偏移量,以确定读取每一行的位置。如果有效实现,我预计这将花费大约 10 微秒的时间。
顺便说一句:如果将其加载到 Java 内存中,速度大约会快 100 倍。
关于java - 逐行获取Util方法#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368111/