いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Jakarta Commons IO覚書-0001

Commons IOとはIOの名の通りJavaのストリーム処理
を助けるライブラリです。

標準APIのストリームクラスに対するユーティリティや
特化した処理を行うストリームクラス等が定義されています。

ちょこっと使用したのでそのメモです。
なお、使用したバージョンは1.0です。

[IOUtilsクラス]
全てのメソッドがstaticで定義されているユーティリティクラスです。
オーバーロードされているメソッドがいくつもありますが、
種類としては4つのメソッドしかありません。(注)

注)正式リリースになっていませんがバージョン1.1になるとメソッドがかなり増えています。
興味がある方はJakarta Commons IOのCVSでソースを見てみてください。

(1) closeQuietly
ストリームのクローズ処理を行います。
普通にclose()メソッドを呼ぶ場合との違いは
例外が発生してもそれを無視してくれるという点が違います。
また、nullを渡してもNullPointerExceptionが起こりません。
つまり、

    InputStream in = null;
    try{
      //
      // IO処理
      //
    }catch(IOException ioe){
      // エラー処理
    }finally{
      try{
        if(in != null){
          in.close();
        }
      }catch(IOException ioe){
      }
    }

のfinallyの部分が、

    ・
    ・
    ・
    }finally{
      IOUtils.closeQuietly(in);
    }

となります。
実際にCommons IOのソースよめば分かりますが、
このメソッドのやっていることはは最初のfinallyの部分と
全く同じです。例外が起こってもそのまま無視します。
また、このメソッドは、

InputStream
OutputStream
Reader
Writer

用に各種オーバーロードされています。



================================
過去の記事については、以下のページからご参照下さい。