try with resource
时间: 2024-09-06 17:03:47 浏览: 37
`try-with-resources` 是Java 7引入的一种特性,也称为资源式代码块(Resource Acquisition is Initialization,RAII),主要用于自动管理那些实现了 `AutoCloseable` 接口的对象,比如输入/输出流(`InputStream`, `OutputStream`)、数据库连接等。它的核心思想是在try块结束时,无论程序是否正常执行完毕,都会自动调用这些资源的 `close()` 方法释放它们。
以下是一个简单的示例:
```java
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
```
在这个例子中,`BufferedReader` 和 `FileReader` 都实现了 `AutoCloseable`,所以在 `try` 块结束后,不需要显式地调用 `reader.close()` 或 `fileReader.close()`,因为垃圾收集器会在合适的时候自动关闭它们。
`try-with-resources` 的优点包括减少内存泄露的可能性,提高代码的简洁性和可读性,以及在异常发生时可以防止资源未能关闭的情况。
阅读全文