ホームページ > Java > &#&チュートリアル > Java クラスパス ディレクトリからリソースを効率的に取得するにはどうすればよいですか?

Java クラスパス ディレクトリからリソースを効率的に取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-13 21:50:12
オリジナル
703 人が閲覧しました

How Can I Efficiently Retrieve Resources from a Java Classpath Directory?

クラスパス ディレクトリからリソースのリストを取得する

概要

指定したクラスパス ディレクトリからリソースのリストを取得するには、 Java プログラミングの一般的なタスク。さまざまなライブラリとテクニックを活用して、これらのリソースを効率的に取得できます。

既存のライブラリ実装

Spring Framework
Spring Framework は PathMatchingResourcePatternResolver を提供します。 Ant のようなパス パターンを使用してリソースを解決できるクラス。例:

ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] resources = resolver.getResources("classpath:/x/y/z/*");
ログイン後にコピー

Ronmamo Reflections
Ronmamo Reflections は、コンパイル時に検索をプリコンパイルすることで高速なアプローチを提供し、大規模なクラスパスの実行時のパフォーマンスのオーバーヘッドを削減します。

Reflections reflections = new Reflections("x.y.z");
Set<String> resources = reflections.getResources(Pattern.compile(".*"));
ログイン後にコピー

カスタムスキャナー
カスタム スキャナーの作成は、リソースを取得する簡単な方法です。これには、 getResourceAsStream() メソッドを使用してクラスパスを走査することが含まれます。ただし、特に JAR ファイルの場合、上記のソリューションほど効率的ではない可能性があります。

List<String> resources = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new InputStreamReader(getResourceAsStream("x/y/z")))) {
  String resource;
  while ((resource = br.readLine()) != null) {
    resources.add(resource);
  }
} catch (IOException e) {
  // handle exception
}
ログイン後にコピー

実装に関する考慮事項

実装の選択は、特定の要件によって異なります。そしてパフォーマンスに関する考慮事項。クラスパスが小さく、使用頻度が低い場合は、カスタム スキャナーで十分な場合があります。大規模なクラスパスまたはリアルタイム要件の場合は、Spring または Reflections ライブラリを使用することをお勧めします。

以上がJava クラスパス ディレクトリからリソースを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート