Java 如何返回文本文件中的第一行而不重新读取?

Java 如何返回文本文件中的第一行而不重新读取?,java,io,Java,Io,我写了这段代码,我想在使用line=input.nextLine()时,我已经转到了代码的最后一行。现在我不知道如何再次回到文本文件的第一行。我不允许再次阅读该文件 File file = new File(fileName); input = new Scanner(file); bufRdr = new BufferedReader(new FileReader(file)); this.cols=bufRdr.read

我写了这段代码,我想在使用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());
    }
File File=新文件(文件名);
输入=新扫描仪(文件);
bufRdr=newbufferedreader(newfilereader(file));
this.cols=bufRdr.readLine().length();
while(input.hasNext()){
这个.rows++;
line=input.nextLine();
}   
theMaze=newchar[this.rows][this.cols];
int i=0;

虽然(i你必须使用和使用才能到达顶部。BufferedReader按顺序读取;你不能跳转。你应该检查BufferedReader的方法。

你不需要。你应该使用
字符串的
ArrayList
而不是二维字符数组。
ArrayList
s可以根据需要增长,因此你可以使用它们只需读取一次文件-无需先计算行数:

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

这是一个很好的问题示例,说明了它试图使用的技术,而不是真正的问题。最好是询问您真正的问题,但仍然提到您试图使用的技术。为什么不允许您再次阅读该文件?您能详细解释一下吗。我刚刚开始使用java,没有使用g一个深入了很多。@user30881请看本教程:它与泛型有关吗?如果是,我从未使用过。好的,ArrayList通常使用泛型。但实际上,对泛型使用泛型并不是必须的。为了让自己一开始更容易,您可以省略所有泛型类型参数,这样会更好仍在编译,但有一些警告。你能告诉我怎么做吗?我很长时间都在使用这种编码。@user30881我用一些代码更新了我的答案,以显示它是如何完成的。如果你愿意,可以省略