是java7的新特性,它是try...final...的升级。在try...final...中,final释放资源还是会抛异常,而是用try with resource
就默认会释放try的资源。
try with resource
的结构,`try(需要finally释放的资源){}`,示例代码。
try(FileInputStream input = new FileInputStream("file.txt")) { int data = input.read(); while(data != -1){ System.out.print((char) data); data = input.read(); } }
如果失败,input会默认的释放input的资源。这个只是优化finally,和catch无关。如果没有final,也就没有必要使用try with resource
。