skillup

技術ブログ

Java

try-with-resourceの使い方

投稿日:2015年7月18日 更新日:

先日ファイル入出力の処理をいろいろと書いていたところ、例外処理について社長からアドバイスをいただきました。

ファイルの入出力について

ファイルの入出力を行う場合、ストリームで接続口を開いた場合、IOExceptionが発生した場合もそうでない場合も下記のように接続口を閉じる必要があります。

try-with-resource

上記のような表記が冗長のため、下記のようにtry文の開始に入力処理を書いておけば、自動で閉じてくれます。

ちなみにストリームが2か所あっても下記のように改行して、つなげれば問題ありません。

この記述自体はよく見かけていたのですが、これがtry-with-resourceという表現だとはしりませんでした。うーん不勉強・・・

参考リンク

 http://docs.oracle.com/javase/jp/7/technotes/guides/language/try-with-resources.html

Java7 体当たり/try-with-resources Statement

Java7のtry-with-resources構文でcloseし忘れを防ぐ

Java: try-with-resources で catch 節を使う

-Java
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Javadocに関して

業務で社内で使うクラスライブラリを作成中です。 他人に使ってもらうものなのでコメントやドキュメント周りの整備が必要になり、javadocをしっかり作りたいと思っています。 Contents1 java …

no image

pretty-configでのファイルアップロード

先日、こちらのエントリーでpretty-configを使うとファイルのアップロードができない、というエラーが起こっていたのですが、本日社長により解決していただきました。 原因としてはURLがスラッシュ …

no image

Mapからインスタンス変数、インスタンス変数からMapへ

Javaで変数を引き回すときにMapからインスタンス、インスタンスからMap、あるインスタンスから別のインスタンスに変数を差し替える作業って結構多いと思います。 これって普通にやるとMapのget,p …

no image

arquillianでのリソースファイル読み込み

以前、このエントリーでarquillianからライブラリが利用できず、追加のライブラリを導入した、ということを書きました。 実はリソースファイルもそのままですとarquillianからは使用できません …

no image

メソッドのtransient

エンティティを作成するときに、データベースのカラムにない値をプロパティを持たせるためにはtransientという修飾子が必要です。 参考リンク フィールド以外のプロパティをエンティティに持たせる 通常 …