前言
try-with-resouce写法是在JDK1.7引入的一个语法糖,用来进行io数据流关闭的简易写法。
常见的Java关闭IO数据流的写法
在JDK 1.7之前,我们先看一下常见的写法
String readTextFromFile(String path) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
看readTextFromFile这个方法,从一个文件中用BufferedReader读取数据内容并返回一个字符串,这是一个非常传统与标准的io读取与关闭的写法,利用finally机制,因为finally一定会被执行,所以可以保证资源一定被释放,同时因为close方法会抛出一个异常,所以要在finally里添加try-catch用来处理这个异常,整体来看十分臃肿和繁琐。
try-with-resources写法
在 JDK 1.7开始,为我们提供了以中便捷的关闭io流的方法
String readTextFromFile(String path){
StringBuilder sb=new StringBuilder();
try(BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path)))){
String line=null;