検索
ホームページJava&#&チュートリアルJava IO ファイルフィルタの使用概要の概要

Java IO ファイルフィルタの使用概要の概要

Jun 17, 2017 pm 01:55 PM
java使用要約する書類フィルター

Java IO フローでは多くの デザイン パターン が使用されます。最も一般的なものは、デコレーション モードと コマンド モード です。以下では、Java IO ファイルフィルターでのコマンド デザイン パターンの使用について説明します。 、見てみましょう 見てみましょう

1. 最後の仕上げ

Java io フローでは多くのデザイン パターンが使用されますが、最も一般的なのはデコレーション モードとコマンド モードです。ファイル フィルター機能を簡単に使用することで、Java IO ストリームによるコマンド設計パターンの一般的な使用法を垣間見ることができます。以下は 2 つの部分に分かれており、最初にファイル フィルターの簡単な使用例を示し、次にコマンド設計パターンの使用方法について説明します。パターンについては詳しく説明しません。コマンドパターンをより深く理解したい場合は、他の記事の資料を参照してください。

2. 例

Javaプログラミングを行う場合、ファイルまたはディレクトリにアクセスしたい場合、File クラスを使用します。ディレクトリ。ファイルをトラバースしたい場合は、File クラスの list() メソッドを使用します。これにより、現在の File オブジェクトのすべてのサブファイル名とパス名がリストされます。 File クラスは、フィルター機能を備えた別のオーバーロードされたメソッド リスト (FilenameFilter フィルター) を提供します。メソッドは次のように宣言されます:

public String[] list(FilenameFilter filter);

このインターフェイスには、ファイル名フィルター インターフェイスがあります。 () メソッドがあります。定義されたファイル名フィルターは、このインターフェイスを実装し、ルールをカスタマイズするために accept() メソッドを実装する必要があります。 FilenameFilter インターフェイスの宣言は次のとおりです:

public interface FilenameFilter {
 boolean accept(File dir, String name);
}

使用方法を見てみましょう。これは、現在のワークスペース内の .xml で終わるすべてのファイル名またはパス名を一覧表示することを意味します。

1. カスタム ファイル フィルターを作成します:

package org.light4j.io.fileFilter;
import java.io.File;
import java.io.FilenameFilter;
/**
 * 自定义文件名过滤器
 * 
 * @author longjiazuo
 * 
 */
public class MyFilenameFilter implements FilenameFilter {
 @Override
 public boolean accept(File dir, String name) {
  // 如果文件以.xml结尾则符合条件返回true
  return name.endsWith(".xml");
 }
}

2. テスト クラスを作成します

package org.light4j.io.fileFilter;
import java.io.File;
/**
 * 文件过滤器测试
 * 
 * <p>
 * 列出当前工作目录下符合条件的所有子文件名和路径名
 * </p>
 * 
 * @author longjiazuo
 * 
 */
public class FilenameFilterTest {
 public static void main(String[] args) {
  // 获取工作目录
  String workDir = System.getProperty("user.dir");
  File file = new File(workDir);
  // 列举当前工作目录下的所有文件
  String[] files = file.list(new MyFilenameFilter());
  // 循环遍历
  for (String string : files) {
   System.out.println(string);
  }
 }
}

上記のコードを実行すると、.xml で終わるファイル名またはパス名のみがリストされることがコンソールに表示されます。 。

3. コマンド設計パターン

コマンドパターンは、あるオブジェクトが別のオブジェクトにそのメソッドの呼び出しを要求するときに、そのメソッドの呼び出しを要求するオブジェクトをどのように処理するかについての設計パターンです。リクエストされたオブジェクトと直接やり取りするのではなく、リクエストをコマンド オブジェクトにカプセル化します。具体的な方法は、リクエストをコマンド オブジェクトのメソッドにカプセル化し、コマンド オブジェクトをパラメータとして渡すことです。コマンド パターンの中核は、コマンド オブジェクトを使用してメソッド呼び出しをカプセル化することです。

プロジェクトにはクラスが 1 つだけあるわけではないため、特定の目的を達成するために、あるオブジェクトが別のオブジェクトにそのメソッドの呼び出しを要求することがよくあります。現時点でリクエスタがリクエスタと直接対話することを望まない、またはできない場合、つまりリクエスタにリクエスタの reference が含まれていない場合、この時点で 2 人はどのように対話できるでしょうか?目的を達成するため。例えば、私たちが毎日テイクアウトを注文する場合、レストランと直接取引するのではなく、美団などのテイクアウトサイトにアクセスして購入します。テイクアウトサイトは、注文の際に限り、テイクアウトの希望をレストランに伝えます。注文が成功したのでそれをレストランに渡すと、確実にテイクアウトが受けられます。

ここでファイル フィルターの使用に戻ります。File クラスのリスト (FilenameFilter フィルター) メソッドは、インターフェイス オブジェクトをパラメーターとして使用してファイル名をフィルターする機能を実装します。具体的なルールの定義は、FilenameFilter インターフェイスのメソッド内にあります。サブクラス これは、コマンド設計パターンの使用である accept() で実装されます。

論理的には、 list(FilenameFilter filter) メソッドはどのファイルをリストする必要があるかを決定するルールを必要としているため、ルールを渡すだけで済みます。 このルールはコード ブロックですが、現在の Java はこのメソッドをサポートしていません。コードブロックが渡されるため、Java は FilenameFilter の accept() メソッドを使用して判定ルールをカプセル化します。実際には、渡される MyFilenameFilter オブジェクトの関数は、この accept() メソッドのメソッド本体に渡されます。メソッド本体がどのファイル名またはパス名がルールに適合しているかを判定する list(FilenameFilter フィルタ) の実装ソースコードは次のとおりです。

以上がJava IO ファイルフィルタの使用概要の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?分散コンピューティングにJavaのRMI(リモートメソッドの呼び出し)を使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?ネットワーク通信にJavaのソケットAPIを使用するにはどうすればよいですか?Mar 11, 2025 pm 05:53 PM

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Javaでカスタムネットワークプロトコルを作成するにはどうすればよいですか?Mar 11, 2025 pm 05:52 PM

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境