关闭BufferedReader

时间:2014-01-30 05:10:25

标签: java bufferedreader

如果我以下列方式调用BufferedReader:

Integer.parseInt(new BufferedReader(new InputStreamReader(System.in)).readLine());

JVM是否知道在不使用时会自动关闭它?如果没有,我该如何关闭呢?

2 个答案:

答案 0 :(得分:4)

如果您使用的是java 7或更高版本且代码位于try catch resource块中,那么它是Auto closes

如果在以下版本中,您必须使用close()关闭。为此,你必须改变你目前的使用方式并获得参考。

答案 1 :(得分:2)

不要链接它们,声明并分配变量,然后在使用后关闭它。

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子句定义,那么这些将自动关闭。查看here了解详情

  

try-with-resources语句是一个声明一个的try语句   或更多资源。资源是必须关闭的对象   程序完成后。尝试资源   语句确保每个资源在结束时关闭   声明。任何实现java.lang.AutoCloseable的对象,其中   包括实现java.io.Closeable的所有对象,可以用作   资源。