我编写了这段代码,我想在使用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());
}
答案 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());
}