在 Java 中尝试使用多个资源
Try with multiple Resource in Java
我是 Java8
的新手,我想知道对于 AutoCloseable
资源,我是否必须为每个 resource
添加一个 try
,或者它将与上面的代码一起工作
try (Connection conn = getConnection();) {
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(sql);
while (rset.next()) {
TelefonicaDataVO vo = new TelefonicaDataVO();
vo.setTelefonicaDataId(rset.getString("Telefonica_PSD_ID"));
vo.setReceptionDate(nvl(rset.getTimestamp("CREATION_DATE")));
vo.setMessage(nvl(rset.getString("MESSAGE")));
ret.add(vo);
}
}
通过在 try
块中声明所有资源,Try with resources 可以与多个资源一起使用,此功能在 [=32= 中引入] 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 对象的关闭方法。 请注意,资源的关闭方法的调用顺序与其创建顺序相反。。
请参阅documentation了解更多信息
我是 Java8
的新手,我想知道对于 AutoCloseable
资源,我是否必须为每个 resource
添加一个 try
,或者它将与上面的代码一起工作
try (Connection conn = getConnection();) {
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery(sql);
while (rset.next()) {
TelefonicaDataVO vo = new TelefonicaDataVO();
vo.setTelefonicaDataId(rset.getString("Telefonica_PSD_ID"));
vo.setReceptionDate(nvl(rset.getTimestamp("CREATION_DATE")));
vo.setMessage(nvl(rset.getString("MESSAGE")));
ret.add(vo);
}
}
通过在 try
块中声明所有资源,Try with resources 可以与多个资源一起使用,此功能在 [=32= 中引入] 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 对象的关闭方法。 请注意,资源的关闭方法的调用顺序与其创建顺序相反。。
请参阅documentation了解更多信息