如果我以下列方式调用BufferedReader:
Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());JVM会知道在不使用时自动关闭它吗?如果没有,我该如何关闭它?
发布于 2014-01-30 05:12:47
如果您使用的是java 7或更高版本,并且您的代码位于try catch resource块中,那么它就是Auto closes。
如果在下面的版本中,您必须使用关闭()关闭。为此,您必须改变当前的使用方式,并获取引用。
发布于 2014-01-30 05:11:42
不要链接它们,声明和赋值变量,然后在使用之后关闭它。
InputStreamReader isReader;
BufferedReader bfReader;
try {
isReader = new InputStreamReader(System.in);
bfReader = new BufferedReader(isReader).readLine();
} catch (Exception e) {
// handle as per the requirement.
} finally {
bfReader.close();
}如果使用java 7,那么,如果使用try子句进行定义,那么这些语句将自动关闭。查看这里以获得更多详细信息
try -语句是一个try语句,它声明一个或多个资源。资源作为一个对象,必须在程序完成后关闭它。try-语句确保在语句末尾关闭每个资源。任何实现java.lang.AutoCloseable的对象(包括实现java.io.Closeable的所有对象)都可以用作资源。
https://stackoverflow.com/questions/21448287
复制相似问题