如何使用bufferedReader读取上一行

时间:2014-04-13 07:53:30

标签: java file-io bufferedreader

我正在制作一个大型项目。因为我被困在一个地方。我使用以下代码从文件中读取:

String str = null;
FileReader fr = new FileReader("H:\\Eclipse\\Emulator\\progin8085.txt");
BufferedReader br = new BufferedReader(fr);
str = br.readLine(); //using it in a loop from 0 to total_no_of_lines

现在,当我在第8行(在向文件输入数据时计算行数)时,我想回到第3行或第4行或任何并再次想要读取和执行每个语句。如何仅使用BufferedReader读取以前的语句?如果不可能,还有其他解决办法吗?

2 个答案:

答案 0 :(得分:1)

一些Reader支持标记。您可以使用它们来回放文件。一个特别有用的Reader(imo)是LineNumberReader,它支持标记。这种代码可能适合您的需求。

public static int final READ_AHEAD_LIMIT = 100000;

LineNumberReader lnReader = new LineNumberReader(reader);

while (youWantToRead) {
  ...
  if (mightBeInterestingLater) {
    lnReader.mark(READ_AHEAD_LIMIT);
  }
  ...
  if (nowWantToRewind) {
    lnReader.reset();
    // We're now at whatever place mark() was last called at.
  }

答案 1 :(得分:-3)

将所有文本文件行保存在 String [] StrArray 中并执行任何操作。