try-with-resources语句
1.传统资源关闭方式
public static void main(String[] args) {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream("test");
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.使用try-with-resources语句后资源关闭方式
public static void main(String[] args) {
try (
FileInputStream inputStream = new FileInputStream("test");
) {
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
3.原理
在jdk1.7之前是没有自动关闭在不资源的语法特性,直到jdk1.7中新增了try-with-resources语句,简化了代码对流的操作
但前提是这些可关闭的流资源必须实现java.lang.AutoCloseable接口
try-with-resources语句并不是jvm新增的功能,只是jdk实现的一个语法糖,对于jvm而言,看到的依然是传统关闭流的写法
|