Java readline()while语句,为什么这个工作正常?

时间:2013-05-25 21:43:55

标签: java file-io while-loop readline

我不明白为什么这段代码工作正常,似乎没有任何增量器或计数器在某些时候循环退出。什么使readline函数转到输入文件的下一行?

            while ((str = in.readLine()) != null) { 
                String [] dat = null;
                dat = baseballstats(str);
                for (int i = 0; i < dat.length; i++) {
                   out.print(dat[i]);
                   out.print (" ");

                }
                out.println();
            } 

我需要这样做,以便它不会只打印第一行,但我无法弄清楚是什么让它进入输入文件的下一行。

4 个答案:

答案 0 :(得分:1)

readLine()读取文件中的所有文本,直到新行序列(\ r,\ n或\ r \ n)

如果没有更多输入,则返回null。

while循环使它继续读取每一行,直到它到达文件末尾。

答案 1 :(得分:1)

你的循环是一个基本的while循环形式:

while(condition){
  ...
}

但在你的情况下,你的情况恰好是两部分:首先是作业,然后是评估。你的情况基本上是:

  1. str分配给in.readLine
  2. 的结果
  3. 检查str是否为空,如果是,则退出循环。
  4. 它为每个循环迭代执行这两个部分条件,直到str最终为null,这意味着它已完成读取,并且循环退出。

答案 2 :(得分:0)

第一行代码执行两项操作:它尝试读取一行文本,然后检查该值是否为null:如果是,则读取终止。

答案 3 :(得分:0)

str每次更改。它读取下一行并将其放入str。当没有行重新生成str等于null时,它退出循环。