在Java中,如果你想在try-catch语句中自动关闭多个资源,你可以使用try-with-resources语法123456。这种语法可以让你在try后面的小括号里声明和初始化一个或多个资源,然后在语句结束时自动调用它们的close方法23。
例如,如果你想读取一个文件并打印它的内容,你可以这样写:
try (BufferedReaderbr=newBufferedReader(newFileReader("file.txt"))) {
Stringline;
while ((line=br.readLine()) !=null) {
System.out.println(line);
}
} catch (IOExceptione) {
e.printStackTrace();
}
这样就不需要在finally块中手动关闭BufferedReader对象了1。
如果你想在同一个try-with-resources语句中使用多个资源,你可以用分号隔开它们,例如:
try (Connectionconn=DriverManager.getConnection(url);
Statementstmt=conn.createStatement();
ResultSetrs=stmt.executeQuery(sql)) {
// 处理结果集
} catch (SQLExceptione) {
// 处理异常
}
这样就不需要在finally块中手动关闭Connection、Statement和ResultSet对象了4。而且,它们会按照创建的相反顺序关闭,所以不用担心Connection会先关闭4。