java readLine是如何工作的?
public class testBuf {
static String path = "C:/cheaters.log";
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
int totword = 0;
while (line != null) {
String a[] = line.split(" ");
for (int i = 0; i < a.length; i++) {
if (a[i].length() > 0)
totword += 1;
}
**line = br.readLine();**
}
System.out.print("Total number of words" + totword);
br.close();
}
}
我不明白为什么我们必须在循环中再写一个代码“line=br.readLine”?我认为这是没有必要的,但当我试图删除它时,程序将无法工作。请给我解释一下;)
# 1 楼答案
如果对
readLine()
的第一次调用返回一个非空值,那么while()
内的条件将始终是true
。因此程序将进入一个无限循环br.readLine()
会继续读台词。因此,当读取结束时,您必然会得到一个空值,因此您将跳出循环# 2 楼答案
因为
readLine()
读取将在此处选中的下一行:while (line != null) {
如果到达文件的末尾
readLine()
将返回null
。如果你不叫readline?在循环中,您将永远使用第一行