概要
指定したクラスパス ディレクトリからリソースのリストを取得するには、 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 サイトの他の関連記事を参照してください。