Java7新特性,支持使用try后面跟隨()括號管理釋放資源
例如通常使用try代碼塊

1 try { 2 fis = new FileInputStream(source); 3 fos = new FileOutputStream(target); 4 5 byte[] buf = new byte[8192]; 6 7 int i; 8 while ((i = fis.read(buf)) != -1) { 9 fos.write(buf, 0, i); 10 } 11 } 12 catch (Exception e) { 13 e.printStackTrace(); 14 } finally { 15 close(fis); 16 close(fos); 17 }
使用Java7新特性
1 try ( 2 InputStream fis = new FileInputStream(source); 3 OutputStream fos = new FileOutputStream(target)){ 4 5 byte[] buf = new byte[8192]; 6 7 int i; 8 while ((i = fis.read(buf)) != -1) { 9 fos.write(buf, 0, i); 10 } 11 } 12 catch (Exception e) { 13 e.printStackTrace(); 14 }
try括號內的資源會在try語句結束后自動釋放,前提是這些可關閉的資源必須實現 java.lang.AutoCloseable 接口。