nakanilog

おぼえておきたい事をざっくりとメモするブログ

try-with-resources文(try~chatchにおけるリソース解放処理の効率的な書き方)

Java SE 7 よりtry~chatchにおけるリソース解放処理を簡素に記述できるようになった。

 

<try-with-resources文を使わない場合>
FileInputStream fs = null;

try {
    fs = new FileInputStream(filePath);
    (ファイル処理)
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (fs != null) {
        try {
            fs.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

<try-with-resources文を使う場合>

try ( FileInputStream fs = new FileInputStream(filePath); ) {
    (ファイル処理)
} catch (IOException e) {
    e.printStackTrace();
}

※try()の括弧中で生成したリソースについては、処理終了時、結果にかかわらずcloseされる。

※try-with-resources文が利用できるクラスは、AutoCloseableインタフェースおよびそのサブインタフェースであるCloseableインタフェースの実装クラスに限られる。