Java 如何在while循环中关闭BufferedReader
当我试图在while循环中关闭BufferedReader时,当循环第二次执行时,它将抛出一个Java 如何在while循环中关闭BufferedReader,java,bufferedreader,Java,Bufferedreader,当我试图在while循环中关闭BufferedReader时,当循环第二次执行时,它将抛出一个IOException:streamclosed 我的代码如下: import java.io.*; class Test { public static void main(String[] args) { int option = 0; BufferedReader br = null; while (option != -1) {
IOException:streamclosed
我的代码如下:
import java.io.*;
class Test {
public static void main(String[] args) {
int option = 0;
BufferedReader br = null;
while (option != -1) {
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);
System.exit(-4);
}
System.out.println(option);
}
}
}
我应该如何关闭BufferedReader?提前谢谢。你可以做几件事
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);
}
}
如果您使用的是足够新的版本
try {
br = new BufferedReader(new InputStreamReader(System.in));
try {
option = Integer.parseInt(br.readLine());
} catch (NumberFormatException e) {
option = -1;
}
} catch (IOException e) {
System.err.println(e);
System.exit(-4);
} finally {
br.close();
}
如果发生异常,代码将立即前进到catch语句,然后是finally语句(如果存在)
此外,异常处理的全部要点是处理可能发生的异常。您通常不希望在异常情况下退出系统,因为如果您不处理异常,代码将终止。您可以做几件事
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);
}
}
如果您使用的是足够新的版本
try {
br = new BufferedReader(new InputStreamReader(System.in));
try {
option = Integer.parseInt(br.readLine());
} catch (NumberFormatException e) {
option = -1;
}
} catch (IOException e) {
System.err.println(e);
System.exit(-4);
} finally {
br.close();
}
如果发生异常,代码将立即前进到catch语句,然后是finally语句(如果存在)
此外,异常处理的全部要点是处理可能发生的异常。您通常不希望在异常情况下退出系统,因为如果您不处理异常,代码将终止
如何在while循环中关闭BufferedReader
您正在while
循环中关闭它,这就是问题所在
在循环之前打开它,不要关闭它,因为它被包裹在系统中,无法重新打开
如何在while循环中关闭BufferedReader
您正在while
循环中关闭它,这就是问题所在
在循环之前打开它,不要关闭它,因为它缠绕在
系统中。
中,无法重新打开。标题中出现而循环时,问题,该代码与任何可能的建议相矛盾,即他希望退出JVM,甚至终止NumberFormatException
上的循环,代码与任何可能的建议相矛盾,即他希望退出JVM,甚至终止NumberFormatException
上的循环。你的意思是如果我在循环之前打开BufferedReader,我不需要关闭它吗?不,我的意思是你不应该关闭它,因为它被包装在系统中。哦,等等,我实际上是这么说的。你是说如果我在循环之前打开BufferedReader,我就不需要关闭它吗?不,我是说你不应该关闭它,因为它被包装在系统中。哦,等等,我是这么说的。