java BufferedReader回滚到上一行

java BufferedReader回滚到上一行,java,bufferedreader,Java,Bufferedreader,我正在使用BufferedReader从文件中读取文本,当某些条件评估为true时,我想回滚到前一行。将您的读取器包装在一个文件中 从javadoc: 一种字符流读取器,允许向后推送字符 进入小溪 用于解析文件,则缓冲读取器用于按顺序读取文件 使用java.io.RandomAccessFile可以将文件读取为 RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw"); file.seek(200); lon

我正在使用BufferedReader从文件中读取文本,当某些条件评估为true时,我想回滚到前一行。

将您的读取器包装在一个文件中

从javadoc:

一种字符流读取器,允许向后推送字符 进入小溪

用于解析文件,则缓冲读取器用于按顺序读取文件

使用
java.io.RandomAccessFile
可以将文件读取为

RandomAccessFile file = new RandomAccessFile("c:\\data\\file.txt", "rw");
file.seek(200);
long pointer = file.getFilePointer();
file.close()
要在RandomAccessFile中的特定位置读取或写入,必须首先将文件指针定位在要读取或写入的位置。这是使用seek()方法完成的。可以通过调用getFilePointer()方法获取文件指针的当前位置

您可以使用
BufferedReader
类提供的
mark()
方法,并可以获得示例。 您可以在apache commons中使用
FileUtils
,这将更容易

例如:

String line = FileUtils.readLines(aFile).get(lineNumber);
您可以使用此工具实现您的需求

注意:apachecommons-io.jar文件应该在类路径中,您可以下载