我最近遇到了一个问题,我需要在java中显示文件中的最后n行。它类似于在java中实现unix的tail函数,但我只有readline()方法和检查文件末尾的方法。没有其他方法。我正在考虑使用Queue数据结构的方法:
有人能想到其他方法吗?
答案 0 :(得分:2)
大小为n的环形缓冲区如何覆盖最旧的条目? 它基本上看起来像下面的代码。我编写了读取文件的函数,但你应该明白这一点。
String[] lines = new String[n];
int i = 0;
while(!file.eof()) {
String line = file.readLine();
lines[i] = line;
i = (i + 1) % n;
}
for(int j = 0; j < n; j++) {
if (lines[i] != null) {
System.out.println(lines[i]);
}
i = (i + 1) % n;
}