使用Java访问类路径中特定文件夹中的文件

Aka*_*oft 11 java io

我想在com.example.resources包中读取一堆文本文件.我可以使用以下代码读取单个文件:

InputStream is = MyObject.class.getResourceAsStream("resources/file1.txt")
InputStreamReader sReader = new InputStreamReader(is);
BefferedReader bReader = new BufferedReader(sReader);
...
Run Code Online (Sandbox Code Playgroud)

有没有办法获取文件列表,然后将每个元素传递给getResourceAsStream

编辑:在ramsinb建议我改变我的代码如下:

BufferedReader br = new BufferedReader(new InputStreamReader(MyObject.class.getResourceAsStream("resources")));
String fileName;
while((fileName = br.readLine()) != null){ 
   // access fileName 
}
Run Code Online (Sandbox Code Playgroud)

ram*_*inb 9

如果将目录传递给该getResourceAsStream方法,则它将返回目录中的文件列表(或至少是其中的一个流).

Thread.currentThread().getContextClassLoader().getResourceAsStream(...)
Run Code Online (Sandbox Code Playgroud)

我故意使用Thread获取资源,因为它将确保我获得父类加载器.这在Java EE环境中很重要,但对于您的情况可能不是太多.