KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

プログラム

[Java]try-with-resources文

KENスクールの動画配信サービス「KEN×ONLINE」

Java SE6まではファイル入出力やデータベースへのアクセスをするとき、そのためのリソース(プログラムでの使用が終わったら閉じられなければいけないオブジェクト)を解放するために、例外処理のfinally句などでclose処理を記述していました。ですが、アクセスがある度にclose処理を書くのが面倒、書き忘れるとメモリリークの原因になる等少々手間のかかるものでした。

そこで、Java SE7から追加されたtry-with-resources文を使うとこれらの問題が解決できるというわけで、今回はその機能紹介とサンプルコードをご紹介したいと思います。

try-with-resources文

はじめに、try-with-resources文を使用するにはjava.lang.AutoCloseableかjava.io.Closeableインターフェースを実装するクラスである必要があります。このインターフェースにはclose()メソッドのみ定義されており、ファイル入出力のjava.ioやデータベースアクセスのjava.sqlパッケージなどのリソース関連クラスは、これらのインターフェースを実装しているため、暗黙的に解放することができます。

使用方法としては、まず例外処理try(){}ブロックの()内にリソースを書き込みます。すると、この()内に書かれたリソースプログラムはコードブロックの終わりで各リソースが確実に閉じられるという仕様になっているのです。

では実際にSE6までのサンプルとSE7のサンプルを見比べてみましょう。

SE6までのサンプル
※サンプルはjava.ioパッケージを使ったファイル入出力例文

SE6以前ではfinallyブロック内にストリームのクローズ処理を書いていたが、SE7ではそれをtry-with-resources文で行う事が可能です。

SE7以降のサンプル

これでclose処理から解放されますね!是非使ってみて下さい!!

この記事に関連する講座

プログラミング言語のスタンダードを身につけよう!!

詳しくはこちら