JAVA開発メモ
Commons-IO のバックアップ(No.5)
 

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


Jakarta Commons IO

Jakarta Commons IOは、java.ioパッケージを利用したプログラミングを簡略化するユーティリティクラスを提供します。

org.apache.commons.io.CopyUtils?クラス

String、byte配列、InputStream?、ReaderからOutputStream?、Writerへのコピーができます。

第1引き数:コピー元 第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

その他の主なメソッド

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.020 sec.