java怎样从指定行号开始读取文txt文件?

来源:百度知道 编辑:UC知道 时间:2024/09/20 15:42:47
我的需求是这样,有一个日志文件,没过1分钟更新一次,我也没个一分钟去读取一次,但不可能每次都全读进来,所以我想,每次读完,把当前行号记录下来,然后下次再去读的时候,从记录的行号开始继续,这样就提高不少效率。

但是我不知道应该怎么做才能从我指定的行号开始读。

请教!

我觉得你可以把上一次读取的偏移量记录下来,下一次使用seek方法跳到那个位置继续读。

RandomAccessFile.getFilePointer() :取得偏移量
RandomAccessFile.seek(long pos) :设置偏移量

public class LineNumberReader extends BufferedReader

跟踪行号的缓冲字符输入流。此类定义了方法 setLineNumber(int) 和 getLineNumber(),它们可分别用于设置和获取当前行号。

默认情况下,行编号从 0 开始。该行号随数据读取在每个行结束符处递增,并且可以通过调用 setLineNumber(int) 更改行号。但要注意的是,setLineNumber(int) 不会实际更改流中的当前位置;它只更改将由 getLineNumber() 返回的值。

可认为行在遇到以下符号之一时结束:换行符('\n')、回车符('\r')、回车后紧跟换行符。