Java 为什么我的bufferedreader只读取第二行?
我有一个这样的bufferedreader:Java 为什么我的bufferedreader只读取第二行?,java,list,reader,buffered,Java,List,Reader,Buffered,我有一个这样的bufferedreader: BufferedReader br = BufferedReader(new FileReader(("Output/pointsSorted.txt"))); String line; while((line = br.readLine()) != null){ System.out.println(br.readLine()); } br.close(); } 但它只读第二行,我不明白为什么 这
BufferedReader br = BufferedReader(new FileReader(("Output/pointsSorted.txt")));
String line;
while((line = br.readLine()) != null){
System.out.println(br.readLine());
}
br.close();
}
但它只读第二行,我不明白为什么
这是读卡器读取的文件:
bendsan: 1000
gotr_gotey: 87
lordelain: 87
nightbot: 87
vellsain: 87
r3l10n: 86
skalrayi: 85
brom13: 84
llecrezzef: 84
cloudinger: 74
littleangelswing: 60
n3belmacht: 43
mrscandy_: 32
sluckzz: 31
elboy717: 30
assassinenfan: 18
msurai: 18
woischdesdu: 16
daspaddy: 14
sirfullmetal: 10
daranun: 1
这是输出:
gotr_gotey: 87
nightbot: 87
r3l10n: 86
brom13: 84
cloudinger: 74
n3belmacht: 43
sluckzz: 31
assassinenfan: 18
woischdesdu: 16
sirfullmetal: 10
正如您所见,每第二行都会被跳过。因为您打印的是
br.readLine()
而不是line
,因此循环的每个迭代都会读取2行(但只打印一行)。因为您打印的是br.readLine()
而不是line
,因此,循环每次迭代读取2行(但只打印一行)
第1行从文件中读取一行并将其存储在Line
中。然后第2行从文件中读取新行并输出它。因此,第一行被读入行
,然后第二行被打印出来,然后第三行被读入行
,然后第四行被打印出来,依此类推
你可能想要这个:
BufferedReader br = BufferedReader(new FileReader(("Output/pointsSorted.txt")));
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
br.close();
}
第1行从文件中读取一行并将其存储在Line
中。然后第2行从文件中读取新行并输出它。因此,第一行被读入行
,然后第二行被打印出来,然后第三行被读入行
,然后第四行被打印出来,依此类推
你可能想要这个:
BufferedReader br = BufferedReader(new FileReader(("Output/pointsSorted.txt")));
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
br.close();
}
您将调用
readline()
两次,一次在中调用,另一次在的条件中调用(然后忽略结果),一次在其主体中调用。只需删除其中一个电话,您就可以了。例如:
String line;
while ((line = br.readLine()) != null) {
System.out.println(line); // Use the value of line populated in the while's condition
}
br.close();
您将调用readline()
两次,一次在中调用,另一次在的条件中调用(然后忽略结果),一次在其主体中调用。只需删除其中一个电话,您就可以了。例如:
String line;
while ((line = br.readLine()) != null) {
System.out.println(line); // Use the value of line populated in the while's condition
}
br.close();
每个readLine
占用一行,包括在条件下调用,因此在每次迭代中执行两次,但只打印第二次调用的结果。每个readLine
占用一行,在
条件下包含调用,因此在每次迭代中都要执行两次,但只打印第二次调用的结果。哎呀,我的问题。这本来是可以避免的。谢谢哎呀,我的错。这本来是可以避免的。谢谢