【问题标题】:Java readline( ) while statement, why is this working properly?Java readline() while 语句,为什么它可以正常工作?
【发布时间】:2013-05-25 21:43:54
【问题描述】:

我不明白为什么这段代码工作正常,似乎没有任何增量器或计数器会在某个时候退出这个 while 循环。是什么让 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();
            } 

我需要让它不只打印第一行,但我不知道是什么让它进入输入文件的下一行。

【问题讨论】:

    标签: java file-io while-loop readline


    【解决方案1】:

    readLine() 读取文件中的所有文本,直到换行符(\r、\n 或 \r\n)

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

    while 循环会导致它不断读取每一行,直到到达文件末尾。

    【讨论】:

      【解决方案2】:

      您的循环是一个基本的while 循环,形式为:

      while(condition){
        ...
      }
      

      但在您的情况下,您的条件恰好是两部分:首先是分配,然后是评估。你的基本情况:

      1. str 分配给in.readLine 的结果。
      2. 检查str 是否为空,如果是,则退出循环。

      它为每次循环迭代执行这两个部分条件,直到 str 最终为空,这意味着它已完成读取,并且循环退出。

      【讨论】:

        【解决方案3】:

        第一行代码做了两件事:它尝试读取一行文本,然后检查该值是否为空:如果是,则读取终止。

        【讨论】:

          【解决方案4】:

          str每次都改变。它读取下一行并将其放入str。当没有剩余行时str等于null,它退出循环。

          【讨论】:

            猜你喜欢
            • 2017-02-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-12-03
            • 2020-10-22
            相关资源
            最近更新 更多