💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
转:https://cakin24.iteye.com/blog/2326066 ## 1 自动关闭资源介绍 **1. Java 7增强了try语句的功能:** 1. 它允许在try关键字后跟一对圆括号,圆括号可以声明,初始化一个或多个资源,此处的资源指得是那些必须在程序结束时必须关闭的资源(比如数据库连接,网络连接等),try语句在该语句结束时自动关闭这些资源。 2. 为了保证try语句可以正常关闭资源,这些资源实现类必须实现Closeable或AutoCloseable接口,实现这些类就必须实现close方法。 **2 代码示例** ``` 1. import java.io.\*;   3. publicclass AutoCloseTest   4. {   5.     publicstaticvoid main(String\[\] args)   6.         throws IOException   7.     {   8.         try (   9.             // 声明、初始化两个可关闭的资源 10.             // try语句会自动关闭这两个资源。 11.             BufferedReader br = new BufferedReader(   12.                 new FileReader("AutoCloseTest.java"));   13.             PrintStream ps = new PrintStream(new 14.                 FileOutputStream("a.txt")))   15.         {   16.             // 使用两个资源 17.             System.out.println(br.readLine());   18.             ps.println("庄生晓梦迷蝴蝶");   19.         }   20.     }   21. }   ``` **3 运行结果** E:\\test\\Java\\Java8\\ExceptionTEST\\src>java AutoCloseTest import java.io.\*; 文件a.txt中生成 庄生晓梦迷蝴蝶 **4 结果分析** try后的小括号分别声明,初始化两个IO流,由于BufferedReader,PrintStream都实现了Closeable接口,而且它们放在try语句中声明和初始化,所有try语法会自动关闭它们。因此上面的代码是安全的。