無意中看到這種寫法,寫try catch。
public static void compressToZip(String sourceFilePath, String zipFilename) {
File sourceFile = new File(sourceFilePath);
File zipFile = new File(zipFilename);
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) {
writeZip(sourceFile, "", zos);
//文件壓縮完成後,刪除被壓縮文件
boolean flag = deleteDir(sourceFile);
LogUtil.w("刪除被壓縮文件[" + sourceFile + "]標誌:{}"+ flag);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage(), e.getCause());
}
}
我第一蒙B是 try後面居然可以加括號(),而且還不報錯。
第一個反應是認爲這個程序員可能是C++轉過來的。代碼寫的很奇怪。
但是既然編譯不報錯,而且還可以運行,那麼這其中就有一定的小九九。所以果斷百度 Google 一下.找到如下文章:
java中帶參數的try(){}語法含義是什麼?
原來這是java 1.7的特性,這樣有利於我們關閉流。