如何在while循环中关闭BufferedReader

时间:2016-03-27 08:28:56

标签: java bufferedreader

当我试图在while循环中关闭BufferedReader时,当循环执行第二次时它会抛出namespace WpfApplication3 { public partial class MainWindow : MetroWindow { public const int maxButtons = 4; // number of copies for example public MainWindow() { InitializeComponent(); // code add here for example :) } } }

我的代码就像:

IOException: Stream closed

关闭BufferedReader应该怎么做?提前谢谢。

2 个答案:

答案 0 :(得分:2)

  

如何在while循环中关闭BufferedReader

while循环中关闭它,这就是问题。

在循环之前打开它,并且根本不要关闭它,因为它缠绕在System.in上,无法重新打开。

答案 1 :(得分:-1)

你可以做几件事

threads

如果您使用的是最新版本

    try {
           br = new BufferedReader(new InputStreamReader(System.in));
           try {
                option = Integer.parseInt(br.readLine());
            } catch (NumberFormatException e) {
                option = -1;    
            }

            br.close();
        } catch (IOException e) {
            System.err.println(e);
            br.close();
            System.exit(-4);
        }
 }

如果发生异常,代码将立即进入catch语句,然后是finally语句(如果存在)。

此外,异常处理的重点是处理可能发生的异常。您通常不希望在异常中退出系统 - 因为如果您没有处理异常,代码将终止。