【Java】try-with-resources文のすすめ

try-with-resourcesとは?

try-with-resources 文 (oracle.com)より抜粋

try-with-resources 文は、1 つ以上のリソースを宣言する try 文です。リソースは、プログラムでの使用が終わったら閉じられなければいけないオブジェクトです。try-with-resources 文は、文の終わりで各リソースが確実に閉じられるようにします。java.io.Closeable を実装しているすべてのオブジェクトも含め、java.lang.AutoCloseable インタフェースを実装しているオブジェクトはリソースとして使用できます。

つまり何が言いたいかというとtryブロックが終了した時にリソースを解放(close)してくれる。

try-finallyでの書き方


public static String fileOutput(byte byteDate) {
  FileOutputStream out = null;
  try {
    out = new FileOutputStream(hogehoge.txt);
    out.write(byteDate);
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (out != null){
      try {
        out.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}

closeメソッド呼出でIOExceptionの可能性があるため、さらにtry-catch文を追加する必要がある

try-with-resourcesでの書き方


public static String fileOutput(byte byteDate) {
  try(FileOutputStream out = new FileOutputStream(hogehoge.txt)) {
    out.write(byteDate);
  } catch (IOException e) {
    e.printStackTrace();
  }
}

すっきりするね