JDK 7のtry-with-resourcesの例

Javaでは、通常、tryブロック内でファイルを開き、finallyブロック内のファイルを閉じます。以下を参照してください。

try{
 //open file or resources
}catch(IOException){
 //handle exception
}finally{
 //close file or resources
}

JDK 7以降、新しい " try-with-resources "アプローチが導入されました。 tryブロックが終了すると、開かれたファイルを自動的に閉じたり解放したりします。

try(open file or resource here){
//...
}//after try block, file will close automatically.

pre-JDK7`と JDK7`の2つの読み込みファイルの例を参照してください。

1. JDK 6またはそれ以前のバージョン

ファイルを読むための古典的な方法。

package com.mkyong.io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Example1 {

    public static void main(String[]args) {

        BufferedReader br = null;

        try {

            String line;

            br = new BufferedReader(new FileReader("C:\\testing.txt"));

            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }
}

2. JDK 7

JDK7では、 `finally`はもう必要なくなりました。ファイルはtryブロック後に自動的に閉じられます。

package com.mkyong.io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Example2 {

    public static void main(String[]args) {

        try (BufferedReader br = new BufferedReader(new FileReader("C:\\testing.txt")))
        {

            String line;

            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

リファレンス

try-with-resourcesステートメント]

リンク://タグ/java/[java]リンク://タグ/java7/[java7]リンク://タグ/jdk7/[jdk7]