我想在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)
如果将目录传递给该getResourceAsStream方法,则它将返回目录中的文件列表(或至少是其中的一个流).
Thread.currentThread().getContextClassLoader().getResourceAsStream(...)
Run Code Online (Sandbox Code Playgroud)
我故意使用Thread获取资源,因为它将确保我获得父类加载器.这在Java EE环境中很重要,但对于您的情况可能不是太多.