如何用Java中的BufferedReader读取下一行?

4

我有一个文本文件。我想逐行读取它并将其转换为二维数组。我已经编写了以下内容:

BufferedReader br = new BufferedReader (new FileReader ("num.txt"));
String line = br.readLine();

while( line != null) {                
    System.out.printf(line);  
}

这会导致无限循环。我想在读取和打印一行后继续执行下一行,但我不知道该怎么做。

2个回答

10

您只读了第一行。在 while 循环中,line 变量没有改变,导致了无限循环。

while 条件中读取下一行,这样每次迭代都会读取一行,并改变变量。

BufferedReader br = new BufferedReader (new FileReader ("num.txt"));
String line;

while( (line = br.readLine() ) != null) {
    System.out.printf(line);
}

3
BufferedReader br = new BufferedReader (new FileReader ("num.txt"));
String line = br.readLine();

while( line != null) {

    System.out.printf(line);

    // read the next line
    line = br.readLine();
}

...或者在while条件中读取该行(如rgettman指出的):

String line;
while( (line = br.readLine()) != null) {

    System.out.printf(line);

}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接