Java 7的自動關閉資源的try語句

原文:http://blog.csdn.net/tfnew21/article/details/9137867

Java7增強了try語句的功能,它允許在try關鍵字後緊跟一對圓括號,圓括號可以聲明、初始化一個或多個資源(此處的資源是指那些必須在程序結束時顯式關閉的資源,比如數據庫連接,網絡連接等),try-with-resources 是一個定義了一個或多個資源的try 聲明,try語句在該語句結束時自動關閉這些資源。try-with-resources確保每一個資源在處理完成後都會被關閉。這些資源必須實現AutoCloseable或者Closeable接口,實現這兩個接口就必須實現close() 方法。下面就是一個自動關閉資源的try語句例子,代碼如清單8-6所示。

清單8-6

package com.javapp.ch8;

import java.io.BufferedReader;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.IOException;

import java.io.PrintStream;

public class AutoCloseTest {

         public static void main(String[] args) throws IOException {

                   try (

                   // 聲明、初始化兩個可關閉的資源

                   BufferedReader br = new BufferedReader(new FileReader(

                                     "AutoCloseTest.java"));

                                     PrintStream ps = new PrintStream(new FileOutputStream(

                                                        "readme.txt"))) {

                            // 使用兩個資源

                            System.out.println(br.readLine());

                            ps.println("test");

                   }

                   // 自動關閉資源的try語句相當於包含了隱式的finally塊,用於關閉資源。

         }

}

在上面程序中,一個try-with-resourcse聲明瞭包含兩個對象的聲明,用分號隔開,和聲明一個對象相同,會在結束後自動調用close方法。 此外,try-with-resources 可以跟catch和finally,catch和finally的是在try-with-resources裏聲明的對象關閉之後才執行。



發佈了52 篇原創文章 · 獲贊 22 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章