我不明白为什么这段代码工作正常,似乎没有任何增量器或计数器在某些时候循环退出。什么使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();
}
我需要这样做,以便它不会只打印第一行,但我无法弄清楚是什么让它进入输入文件的下一行。
答案 0 :(得分:1)
readLine()
读取文件中的所有文本,直到新行序列(\ r,\ n或\ r \ n)
如果没有更多输入,则返回null。
while循环使它继续读取每一行,直到它到达文件末尾。
答案 1 :(得分:1)
你的循环是一个基本的while
循环形式:
while(condition){
...
}
但在你的情况下,你的情况恰好是两部分:首先是作业,然后是评估。你的情况基本上是:
str
分配给in.readLine
。str
是否为空,如果是,则退出循环。它为每个循环迭代执行这两个部分条件,直到str
最终为null,这意味着它已完成读取,并且循环退出。
答案 2 :(得分:0)
第一行代码执行两项操作:它尝试读取一行文本,然后检查该值是否为null:如果是,则读取终止。
答案 3 :(得分:0)
str每次更改。它读取下一行并将其放入str。当没有行重新生成str等于null时,它退出循环。