commons-io に見るファイル操作処理のヒント(FileBasedTestCase編)

公開日: : 最終更新日:2014/01/26 commons-io ,

次のプロジェクトはファイルを頻繁に扱うので、楽を出来ないかと Commons IO の JavaDoc とソースコードを眺めてみると、便利なメソッドや実装のヒントになりそうなスニペットを見つけた。

今後の参考にしたいのでメモに残すが、1つの記事にまとめるのはアレなので小出しにする。

この記事は FileBasedTestCase.java のソースコードから発見した実装のヒント。



1. ライブラリのバージョン

ちなみに、ライブラリのバージョンは 2.4 を参照した。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>            

2. close 処理

IOUtils#closeQuiently は有名なので使っているが、やはりのテストでも使われていた。煩雑な close 処理がスッキリ書けるのはうれしい。

try {
    ...
} finally {
    IOUtils.closeQuiently(xxx);
}

3. ファイル作成メソッドに見られた「親ファイル」存在確認処理

ファイルを作成するメソッドやファイルにデータを書き込むメソッドでは、「親ファイルが存在するか」を処理前にチェックしていた。こんな感じ。

protected void createLineBasedFile(File file, String[] data) throws IOException {
    if (file.getParentFile() != null && !file.getParentFile().exists()) {
        throw new IOException("Cannot create file " + file + " as the parent directory does not exist");
    }
    ...
}

これまでこういうケースでは引数の file の親を確認することなく、「存在していること」を前提としていたが、それじゃダメなんだねぇと思わせてくれたコード。

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

icatch-lineiterator_mini

Commons IO の LineIterator#isValidLine メソッドをオーバーライドしたサンプル

CommonsIO にテキストファイルの読み込み処理で役立ちそうなクラスがあったので検証してみました

記事を読む

commons-io

commons-io に見るファイル操作処理のヒント(FileUtils編その2)

commons-io の JavaDoc とソースコードを眺めて発見した便利なメソッドや実装のヒント

記事を読む

commons-io

commons-io に見るファイル操作処理のヒント(IOUtils編)

今回も commons-io の JavaDoc とソースコードを眺めて発見した便利なメソッドや実装

記事を読む

icatch-8969238685_14dd418b01_z-resized

DirectoryFileFilter を使ったフィルタ処理のサンプル

Commons IO の org.apache.commons.io.filefilter (Com

記事を読む

icatch-8597609828_ab32aba876_z-resized

SizeFileFilter を使ったフィルタ処理のサンプル

Commons IO の org.apache.commons.io.filefilter (Com

記事を読む

icatch-teacher_3509507274_mini-thumbnail

commons-io に見るファイル操作処理のヒント(FilenameUtils編)

commons-io の JavaDoc とソースコードを眺めて発見した便利なメソッドや実装のヒント

記事を読む

no image

AgeFileFilter を使ったフィルタ処理のサンプル

Commons IO の org.apache.commons.io.filefilter (Com

記事を読む

commons-io

commons-io に見るファイル操作処理のヒント(FileUtils編その1)

今回も commons-io の JavaDoc とソースコードを眺めて発見した便利なメソッドや実装

記事を読む

commons-io

拡張子を指定したフィルタの実装サンプル

Commons-io の FileFilter のサンプルをいくつか書いてみたのでメモしておきます。

記事を読む

Googleアドセンス用(PC)

Message

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


− 4 = 三

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑