我想读取一个非常大的文件的最后 n 行,而不是使用 Java 将整个文件读入任何缓冲区/内存区域。
我查看了 JDK API 和 Apache Commons I/O,但找不到适合此目的的。
我正在考虑在 UNIX 中使用 tail 或更少的方式。我认为他们不会加载整个文件然后显示文件的最后几行。在 Java 中也应该有类似的方法来做同样的事情。
最佳答案
我发现使用 ReversedLinesFileReader
是最简单的方法来自 apache commons-io api。
此方法将为您提供文件从底部到顶部的行,您可以指定 n_lines
值来指定行数。
import org.apache.commons.io.input.ReversedLinesFileReader;
File file = new File("D:\\file_name.xml");
int n_lines = 10;
int counter = 0;
ReversedLinesFileReader object = new ReversedLinesFileReader(file);
while(counter < n_lines) {
System.out.println(object.readLine());
counter++;
}
关于 java : Read last n lines of a HUGE file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4121678/