如何在没有再次阅读的情况下返回文本文件的第一行?

时间:2013-12-06 21:11:40

标签: java io

我编写了这段代码,我想在使用line = input.nextLine()时我去了代码的最后一行。现在我不知道如何再次返回文本文件的第一行。我不允许再次阅读该文件。

        File file = new File(fileName);

        input = new Scanner(file);
        bufRdr  = new BufferedReader(new FileReader(file));


        this.cols=bufRdr.readLine().length();
        while (input.hasNext()){
            this.rows++;
            line=input.nextLine();
        }   
        theMaze=new char[this.rows][this.cols];
        int i=0;
        while(i<this.rows){
            line=input.nextLine();
            for (int j=0;j<this.cols;j++){
                theMaze[i][j]=line.charAt(j);
                }
            i++;

        }
    } catch(Exception e){
        System.out.println("Error......" +e.getMessage());
    }

2 个答案:

答案 0 :(得分:0)

您必须使用RandomAccessFile并使用seek才能登顶。 BufferedReader按顺序读取;你不能跳。您应该检查BufferedReader的mark方法。

答案 1 :(得分:-1)

你不需要。您应该使用ArrayList String来代替二维字符数组。 ArrayList可以按需增长,所以对它们来说,你只需要读一遍文件 - 你不需要先计算行数:

ArrayList<String> lines = new ArrayList<String>();
while (input.hasNext()) {
  lines.add(input.nextLine());
}