通过在 try
块中声明所有资源,可以尝试将资源与多个资源一起使用,并且此功能是 Java 7中 引入的,而不是 Java 8中
引入的。如果有多个资源,则可以如下所示
try ( java.util.zip.ZipFile zf = new java.util.zip.ZipFile(zipFileName); java.io.BufferedWriter writer = java.nio.file.Files.newBufferedWriter(outputFilePath, charset) ) { // Enumerate each entry for (java.util.Enumeration entries = zf.entries(); entries.hasMoreElements();) { // Get the entry name and write it to the output file String newline = System.getProperty("line.separator"); String zipEntryName = ((java.util.zip.ZipEntry)entries.nextElement()).getName() + newline; writer.write(zipEntryName, 0, zipEntryName.length()); } }在此示例中,该
try-with-resources语句包含两个用分号分隔的声明: ZipFile 和 BufferedWriter
。当它紧随其后的代码块终止时,无论是正常还是由于异常而终止,都将按此顺序自动调用BufferedWriter和ZipFile对象的close方法。
请注意,资源的close方法以其创建的相反顺序调用。 。
请参阅文档以获取更多信息



