Java BufferedReader readLine方法不返回任何内容

时间:2013-08-30 16:43:34

标签: java console java-io

我有一个问题需要解决:http://www.urionlinejudge.com.br/judge/problems/view/1117

使用我的代码,当代码到达最后一行时,方法readLine不会返回任何内容。它等待我键入其他输入行。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class ValidacaoDeNota {
   public static void main(String[] args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

      String line = null;
      double num;

      Double ultimaNotaValida = null;

      while ((line=br.readLine()) != null) {
         num = Double.parseDouble(line);

         if (num < 0 || num > 10) {
            bw.write("nota invalida");
         } else if (ultimaNotaValida == null) {
            ultimaNotaValida = num;
         } else {
            bw.write("media = " + ((ultimaNotaValida+num) / 2) );
         }

         bw.write("\n");
      }

      bw.flush();
   }
}

1 个答案:

答案 0 :(得分:1)

您需要输入Ctrl / d(Windows)或Ctrl / z(Unix,Linux等)以在控制台生成流的结尾。然后readLine()将返回null,你的循环将终止。