在Java 7及以后的版本中,引入了一种称为“自动资源管理”(Automatic Resource Management)或“try-with-resources”语法,它允许你在try
语句中以一种简洁的方式处理需要关闭的资源,例如文件、网络连接、数据库连接等。这是通过在try
关键字后面的圆括号中声明和初始化这些资源,以便在try
块执行完毕后自动关闭它们。
使用try-with-resources
语法,圆括号中包含一个或多个实现了AutoCloseable
接口的资源对象,这些资源对象在try
块执行完毕后会自动关闭,不再需要手动编写关闭资源的代码。
以下是一个使用try-with-resources
的示例:
try (FileInputStream fis = new FileInputStream("file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(fis))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
System.err.println("An error occurred: " + e.getMessage());
}
在这个示例中,FileInputStream
和BufferedReader
都是实现了AutoCloseable
接口的资源,它们在try
块结束后会自动关闭,无需显式调用.close()
方法。
因此,try-with-resources
的圆括号中用于声明和初始化需要自动关闭的资源。在try
块内部,你可以使用这些资源,而在try
块结束后,这些资源将被自动关闭,无论是否发生异常。这有助于简化代码,并确保资源在使用完毕后得到正确关闭,从而避免资源泄漏。这个语法通常用于处理I/O操作和与外部资源交互的情况。