Java8中,可以实现资源的自动关闭,但是要求执行后必须关闭所有的所有资源必须在try字句中进行初始化,否则编译不通过。代码如下:
try (InputStreamReader reader = new InputStreamReader(System.in)) {
//读取数据代码省略
}catch (IOException e) {
e.printStackTrace();
}
Java9中,用资源语句编写try将更加容易。我们可以在try子句中使用已经初始化过的资源,此时的资源是final的。代码示例如下:
InputStreamReader reader = new InputStreamReader(System.in);
OutputSteamWrite write = new OutputStreamWriter(System.oout);
try(reader;write){
//reader时finall的,不可再被赋值
//具体操作省略
} catch(IOException e){
e.printStackTrace();
}