タイトル:共通-IOキットカーディング
falseにコメント
DATE:2019年8月28日午後02時21分58秒
説明:重複を避けるために作られた車輪を終え共通-IOキット一般的に使用されるクラスについて。
カテゴリー:Javaの
アウトライン
今日、再び共通-IOツールキットいくつかの並べ替え、これらのキットを言わなければならないことは、あまりにも実用的であり、我々は、NORこれらのキットの機能を理解する前に提供気づいたので、いくつかのツールキットや自分自身を開発し、いくつかの基本的なされていませんファイル操作も、あなた自身を書き少し低いです。
ソート(コンパレータ)
このクラスでは、パケットの実装Comparator<File>
など、文書のソート操作のためのインタフェースを、:
- 名前のソートを使用します。
NameFileComparator
- ソートの拡張機能を使用しました:
ExtensionFileComparator
- ソートファイルサイズを使用しました:
SizeFileComparator
フィルター(フィルター)
フィルタの多くを提供しています、各フィルタクラスのコメントことわざは非常に明確で、フィルタ名は、いくつかを選択するためにここに、非常に明確なもを果たしている説明:
DirectoryFileFilter
:ディレクトリフィルタは、ディレクトリのみを返します。FileFileFilter
:ファイルフィルタは、ファイルのみを返しますHiddenFileFilter
:非表示ファイルフィルタは、唯一の隠しファイルを返します。MagicNumberFileFilter
:マジックフィルターファイルの数を指定します。NameFileFilter
:名前でフィルタRegexFileFilter
:正通過フィルタ処理する式SizeFileFilter
:ファイルサイズによるフィルタPrefixFileFilter/SuffixFileFilter
:接頭辞または接尾辞で濾過WildcardFileFilter
:ワイルドカードで濾過
使用します。
File dir = new File(".");
String[] files = dir.list( new NameFileFilter("Test") );
for ( int i = 0; i < files.length; i++ ) {
System.out.println(files[i]);
}
// 或
FileFilterUtils#nameFileFilter(String)
入力ストリーム(入力)
カテゴリに含まれ、また名前の意味を知られているクラス名を参照して、非常に良い詳細なメモです。
BOMInputStream
:ファイルには、BOMヘッダを含めることができるかどうかTailer
:UNIX「は、tail -f」機能のシンプルな実装。
出力ストリーム(出力)
ByteArrayOutputStream
:標準的なByteArrayOutputStream
機能はほとんど提供しましたTeeOutputStream
:のOutputStreamのクラシックスプリッタ。UNIXの「ティー」コマンドにちなんで名付けられました。
モニタ(モニタ)
FileAlterationListenerAdaptor
:使用するなど、ファイルを監視したり、ディレクトリの削除の修正を作成します。FileAlterationObserver
クラスの動作を。
例えば:
File directory = new File(new File("."), "src");
FileAlterationObserver observer = new FileAlterationObserver(directory);
observer.addListener(new FileAlterationListenerAdaptor(){
@Override
public void onStart(FileAlterationObserver observer) {
System.out.println("onStart");
}
@Override
public void onDirectoryCreate(File directory) {
System.out.println("onDirectoryCreate");
}
@Override
public void onDirectoryChange(File directory) {
System.out.println("onDirectoryChange");
}
@Override
public void onDirectoryDelete(File directory) {
System.out.println("onDirectoryDelete");
}
@Override
public void onFileCreate(File file) {
System.out.println("onFileCreate");
}
@Override
public void onFileChange(File file) {
System.out.println("onFileChange");
}
@Override
public void onFileDelete(File file) {
System.out.println("onFileDelete");
}
@Override
public void onStop(FileAlterationObserver observer) {
System.out.println("onStop");
}
});
FileAlterationMonitor monitor = new FileAlterationMonitor(1000);
monitor.addObserver(observer);
monitor.start();
File file = new File(directory, "abc");
file.mkdirs();
monitor.stop();
FilenameUtils
これは、ファイル名に関連する操作をカプセル化します。することができ、このようなツールを知っている、非常に明確に記述されたクラスやメソッドにコメント。
fileutils
一般的には以下の機能を提供します。
- 一時ディレクトリを取得します
- ユーザーディレクトリを取得します
- ディレクトリ/ファイルを作成するには、[強制]
- ディレクトリリスト内のファイルまたはディレクトリ
- ファイルまたはディレクトリトラバース
- ファイルやディレクトリをコピーします
- 削除するには、強制的にファイルやディレクトリを削除するには、仮想マシンの出口を削除
- 読む/ファイルへの書き込み
- ファイルサイズを取得します。
- ファイル/ディレクトリを移動します
- 接続ファイルかどうか
IoUtils
これ、異例の低水準ので、需要のほとんどでは、のfileutilsを解決することができます。
LineIterator
LineIterator it = FileUtils.lineIterator(file, "UTF-8");
try {
while (it.hasNext()) {
String line = it.nextLine();
// do something with line
}
} finally {
it.close();
}
ThreadMonitor
それは指定されたタイムアウトに達した場合、スレッドは中断され、スレッドを監視します。