共通-IOキットを櫛


タイトル:共通-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 &lt; 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

それは指定されたタイムアウトに達した場合、スレッドは中断され、スレッドを監視します。

おすすめ

転載: www.cnblogs.com/wuqinglong/p/11424992.html