在使用对象时,我们有三个基本步骤:
- 声明
- 实例化
- 初始化
我的问题是,在try-with语句的()
部分中必须执行哪些步骤才能自动关闭资源。
示例1 - 在此代码中,FileReader对象是否会自动关闭:
try (BufferedReader br = new BufferedReader(new FileReader(filePath)))
{
//some code;
}
例2 - 在此代码中,buf2是否会自动关闭:
private static BufferedReader buf1;
public static void main(String[] args) throws IOException {
//some code
try (BufferedReader buf2 = buf1)
{
}
}
附言:有人认为这个问题是Try With Resources vs Try-Catch的重复。但实际上不是,那个问题是关于try-catch和try-with-resources之间的区别,而我的问题是关于try-with的细节。
AutoCloseable
接口,并将在隐式finally
块中调用close()
方法。 - Andreas