Java使用try-with-resources自动关闭文件

Java在最开始的时候通常都是通过在finally代码块中调用close()方法来关闭文件。但从JDK7开始,Java新增了自动化关闭资源的方式,即try-with-resources,通过使用try-with-resources可以避免当不再需要文件时忘记关闭文件的情况。

try-with-resource语句的基本形式如下:

try(resource-specification){
	//use the resource
}

这里resource-specification是一条声明并初始化资源的语句,它包含一个变量声明,该变量的初始通过引用被管理对象来实现的。
另外,resource-specification中可以包含多个资源,每个资源用分号隔开。

自动关闭文件代码示例:

		int i;
		try(FileInputStream fin=new FileInputStream("C:\\JT\\test1.txt")){
			
			do {
				i=fin.read();
				if(i!=-1)
					System.out.print((char)i);
			}while(i!=-1);
			
		}
		catch(IOException exc) {
			System.out.println("I/O Error: "+exc);
		}

补充
当然,try-with-resource语句的用法也不局限于自动关闭文件,从JDK9开始,这种try语句也可以包含在程序前面声明并初始化的变量,但该变量隐式被指定为final,即创建资源后不能为它赋值。尽管try-with-resource有很多优势,但它也不是在说有情况下都适用,例如有些情况下显示关闭资源可能比自动关闭资源更合适。

你可能感兴趣的:(Java)