JAVA開発メモ
Commons-IO のバックアップの現在との差分(No.4)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]



  #freeze
  *[[Jakarta Commons IO:http://jakarta.apache.org/commons/io/]]
  [[Jakarta Commons IO:http://jakarta.apache.org/commons/io/]]は、java.ioパッケージを利用したプログラミングを簡略化するユーティリティクラスを提供します。
  #contents
  
  #amazonkey2(jakarta)
  
  **org.apache.commons.io.CopyUtilsクラス
  String、byte配列、InputStream、ReaderからOutputStream、Writerへのコピーができます。
  
  |CENTER:''第1引き数:コピー元''|CENTER:''第2引き数:コピー先''|
  |InputStream|OutputStream|
  |Reader|Writer|
  |InputStream|Writer|
  |Reader|OutputStream|
  |String|OutputStream|
  |String|Writer|
  |byte[]|Writer|
  |byte[]|OutputStream|
  
   try {
       InputStream in = new FileInputStream("C:\\tmp\\org.txt");
       OutputStream out = new FileOutputStream("C:\\tmp\\copy.txt");
       // 入力ストリームから出力ストリームへコピーしてファイルを複製する。
       CopyUtils.copy(in, out);
   } catch (Exception e) {
       e.printStackTrace();
   }
  
  **org.apache.commons.io.IOUtilsクラス
  ストリームを安全にクローズします。また、ストリームからString、byte配列を取得できます。
   InputStream in = null;
   try {
       in = new URL("http://www.moriwaki.net/wiki/").openStream();
       // URLから取得したストリームの内容をテキスト表示する
       System.out.println(IOUtils.toString(in));
   } catch (Exception e) {
       e.printStackTrace();
   } finally {
       // ストリームを閉じる
       IOUtils.closeQuietly(in);
   }
  
  **org.apache.commons.io.FileUtilsクラス
  Fileクラス処理の様々な機能を提供します。
  
  ディレクトリ内のファイル、サブディレクトリ全てを削除します。
   File dir = new File("C:\\tmp\\work");
   try {
       FileUtils.cleanDirectory(dir);
   } catch (IOException e) {
       e.printStackTrace();
   }
  
  ファイルをコピーします。
   File file1 = new File("C:\\tmp\\test.txt");
   File file2 = new File("C:\\tmp\\copy.txt");
       try {
   FileUtils.copyFile(file1, file2);
   } catch (IOException e) {
       e.printStackTrace();
   }
  
  ディレクトリ内で指定の拡張子のファイルを検索します。
   File dir = new File("C:\\tmp");
   String[] extensions = {"txt", "html"};
   boolean recursive = true; // true:サブディレクトも検索する
   Collection files = FileUtils.listFiles(dir, extensions, recursive);
   System.out.println(files);
  
  ディレクトリ配下のサイズをlong型で返します。
   File dir = new File("C:\\tmp");
   long size = FileUtils.sizeOfDirectory(dir);
   System.out.println(size + " bytes");
   System.out.println(FileUtils.byteCountToDisplaySize(size));
  出力結果
   693928711 bytes
   661 MB
  
  その他の主なメソッド
  -void ''touch''(File)
  --touchコマンドと同等の処理をします。
  -File[] ''convertFileCollectionToFileArray''(Collection)
  --Fileクラスのコレクションを配列に変換します。
  -Collection ''listFiles''(File, IOFileFilter, IOFileFilter)
  --指定のディレクトリ内にてフィルタに従って検索します。
  -boolean ''contentEquals''(File, File)
  --二つのFileオブジェクトが等しいかどうか比較します。
  -File ''toFile''(URL)
  --URLオブジェクトからFileオブジェクトへ変換します。
  -URL[] ''toURLs''(File[])
  --File配列をURL配列に変換します。
  -String ''readFileToString''(File, String)
  --指定のエンコーディング(第2引き数)でFileオブジェクトをStringオブジェクトに変換します。
  -void ''writeStringToFile''(File, String, String)
  --第2引き数のStringオブジェクトを指定のエンコーディング(第3引き数)でFileオブジェクトに変換する。
  -void ''forceDelete''(File)
  --ファイルまたはディレクトリを強制的に削除します。File.delete()との違いはディレクトリは空である必要はなく、削除失敗時にはfalseを返すのではなく例外をスローします。
  -boolean ''isFileNewer''(File, File)
  --第1引き数のFileが第2引き数のFileより新しいか比較します。
  
  **org.apache.commons.io.filefilter.FileFilterUtilsクラス
  FileUtilsでの検索するフィルタを生成します。
  
   File dir = new File("C:\\tmp");
   // 前方一致で"test"
   IOFileFilter fileFilter1 = FileFilterUtils.prefixFileFilter("test");
   // 後方一致で"html"
   IOFileFilter fileFilter2 = FileFilterUtils.suffixFileFilter("html");
   // fileFilter1とfileFilter2の条件をANDで結合
   IOFileFilter fileFilter =
       FileFilterUtils.andFileFilter(fileFilter1, fileFilter2);
  
   // サブディレクトリも検索する(しない場合はnull)
   IOFileFilter dirFilter = FileFilterUtils.trueFileFilter();
   // CVSディレクトリは無視する
   dirFilter = FileFilterUtils.makeCVSAware(dirFilter);
  
   // 検索実行
   files = FileUtils.listFiles(dir, fileFilter, dirFilter);
   System.out.println(files);
  
  ~
  出力結果
   [C:\tmp\test.html, C:\tmp\test2.html]
  
  

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.007 sec.