プロジェクトのルートにリソース フォルダー/パッケージがありますが、特定のファイルをロードしたくありません。特定のファイルをロードしたい場合は、class.getResourceAsStream を使用すれば問題ありません!! 私が実際にやりたいことは、リソースフォルダー内に「フォルダー」をロードし、そのフォルダー内のファイルをループし、各ファイルへのストリームを取得してコンテンツを読み取ることです...ファイル名は実行前に決定されないと仮定します... 私は何をすべきか?jar ファイル内のフォルダー内のファイルのリストを取得する方法はありますか? リソースを含む Jar ファイルは、コードが実行されているのと同じ jar ファイルであることに注意してください...
質問する
160747 次
12 に答える
11
以下を試してください。
リソース パスを"<PathRelativeToThisClassFile>/<ResourceDirectory>"
作成します。たとえば、クラス パスが com.abc.package.MyClass で、リソース ファイルが src/com/abc/package/resources/ 内にある場合:
URL url = MyClass.class.getResource("resources/");
if (url == null) {
// error - missing folder
} else {
File dir = new File(url.toURI());
for (File nextFile : dir.listFiles()) {
// Do something with nextFile
}
}
使用することもできます
URL url = MyClass.class.getResource("/com/abc/package/resources/");
于 2012-11-05T07:13:02.667 に答える
-2
シンプル ... OSGi を使用します。OSGi では、findEntries と findPaths を使用してバンドルのエントリを反復処理できます。
于 2014-06-17T18:02:03.257 に答える
-28
このリンクはその方法を教えてくれます。
魔法はgetResourceAsStream()メソッドです:
InputStream is =
this.getClass().getClassLoader().getResourceAsStream("yourpackage/mypackage/myfile.xml")
于 2012-06-13T10:28:48.960 に答える