版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
在Java 7之前,finally块的代码是必须要写的,这让代码看上去不是那么美观,Java 7增强了try语句的功能——它允许在try关键字后跟一对圆括号,圆括号可以声明、初始化一个或多个资源,多个资源之间以;
相隔,此处的资源是指那些必须在程序结束后显示关闭的资源(比如数据库连接、网络连接等),try语句在执行结束之后自动关闭这些资源。
注:为了保证try语句可以正常关闭资源,这些资源实现类必须实现AutoCloseable
或Closeable
接口,实现这两个接口必须实现close()
方法。
public static void main(String[] args) throws FileNotFoundException, IOException {
try(//声明、初始化两个可关闭的资源,try语句会关闭这两个资源
BufferedReader br = new BufferedReader(new FileReader("a.txt"));
PrintStream ps = new PrintStream(new FileOutputStream("a.txt")))
{
//使用两个资源
System.out.println(br.readLine());
ps.println("xingze");
}
}
自动关闭资源的try语句相当于包含了隐式的finally块(这个finally块用于关闭资源),因此这个try语句可以既没有catch块,也没有finally块。