当我想在Java中获取纯文本文件的最后一行时,我很困惑。我怎样才能做到这一点?哪个是不使用扫描仪的最佳方式?
由于
答案 0 :(得分:7)
最简单的方法就是迭代文件中的行并在到达结尾时停止。例如:
// I assume this is disposed properly etc
private static String getLastLine(BufferedReader reader) throws IOException {
String line = null;
String nextLine;
while ((nextLine = reader.readLine()) != null) {
line = nextLine;
}
return line;
}
对于空读者,这将返回null。
除非我知道我必须阅读一个非常大的文件,否则就是我要做的。尝试通过直接跳到最后一行来执行此操作 hard 。真的很难,特别是如果你需要一个可变宽度编码,如UTF-8。
答案 1 :(得分:3)
您可以使用RandomAccessFile 1.转到文件末尾(新文件(“your_file”)。length()) 2.读取char并在循环中使用随机访问文件的查找方法。 3.当你看到“\ n”(或系统中的任何内容)停止时。 4.从您停止的位置重新读取文件,直到文件结束。 如果你以某种方式记住你到目前为止所阅读的内容,这是可选的
只需google获取RandomAccessFile示例。
希望这有帮助