有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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”?我认为这是没有必要的,但当我试图删除它时,程序将无法工作。请给我解释一下;)


共 (2) 个答案

  1. # 1 楼答案

    如果对readLine()的第一次调用返回一个非空值,那么while()内的条件将始终是true。因此程序将进入一个无限循环

    br.readLine()会继续读台词。因此,当读取结束时,您必然会得到一个空值,因此您将跳出循环

  2. # 2 楼答案

    因为readLine()读取将在此处选中的下一行:while (line != null) {

    如果到达文件的末尾readLine()将返回null。如果你不叫readline?在循环中,您将永远使用第一行