猿问

快速阅读文本文件的最后一行?

快速阅读文本文件的最后一行?

从Java中的[非常非常大的]文件中读取最后一行文本的最快捷,最有效的方法是什么?



红糖糍粑
浏览 441回答 3
3回答

猛跑小猪

看看我对C#的类似问题的答案。虽然Java中的编码支持有些不同,但代码非常相似。基本上,一般来说,这不是一件非常容易的事情。正如MSalter所指出的那样,UTF-8确实很容易发现,\r或者\n因为这些字符的UTF-8表示与ASCII相同,并且这些字节不会出现在多字节字符中。所以基本上,取一个(比方说)2K的缓冲区,然后逐步向后读(在你之前跳到2K,读下一个2K)检查线路终止。然后跳到流中正确的位置,InputStreamReader在顶部创建一个,在顶部创建一个BufferedReader。然后打电话BufferedReader.readLine()。

九州编程

Apache Commons有一个使用RandomAccessFile的实现。它叫做ReversedLinesFileReader。
随时随地看视频慕课网APP

相关分类

Java
我要回答