当我试图在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应该怎么做?提前谢谢。
答案 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语句(如果存在)。
此外,异常处理的重点是处理可能发生的异常。您通常不希望在异常中退出系统 - 因为如果您没有处理异常,代码将终止。