关闭缓冲的阅读器会在在线判断中出错。

时间:2013-01-10 14:16:43

标签: java

在以下程序中关闭缓冲的阅读器会在在线评判codechef中出现运行时错误。删除关闭缓冲读取器的语句后,问题就解决了。我应该避免关闭缓冲的阅读器,还是仅仅是在线评判的问题?

import java.util.* ; 
import java.io.* ; 
class Main{
    public static void main(String args[])throws java.lang.Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        while(true){
            int num = Integer.parseInt(br.readLine()) ; 
            if(num == 42){
                break ;
            }
            System.out.println(num) ;
        }
        br.close() ; 
    }
}

2 个答案:

答案 0 :(得分:1)

你应该向codechef报告

恕我直言,你应该被允许在这种特殊情况下关闭标准输入。关闭stdin是不寻常的,但你应该被允许。

我认为这实际上是他们身边的一个问题:他们的跑步者可能会继续将数据提供到您的应用中,当您关闭该流时,它会失败而不会意识到您已解决了问题。

答案 1 :(得分:0)

没有其他解决方案关闭System.in,所以我猜这不是预期的。