java : Read last n lines of a HUGE file

标签 java file-io large-files

我想读取一个非常大的文件的最后 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/

相关文章:

java - 使用感知器 1 层进行错误学习

java - Java 中有 long double 的替代品吗?

java - 如何阅读 Netty 日志

c - 我如何在 C 中检查 EOF?

c# - 在 C# 中解析带有标题的 CSV 文件

java - 循环屏障无法实现同步

java - .NET (Mono) 是否支持跨平台文件操作和跨平台音频元数据处理(通过库)?

html - 提取 HTML 文件中两个标签之间的数据

c# - 在 C# 中读取和解析 Json 文件

c# - C#计算大文件的MD5SUM