java - 读取特定包中文件的内容

标签 java inputstream package

我很惊讶我在 stackoverflow 上找不到这个问题的答案,但如果这是重复的,请原谅我。

我的 Web 应用程序的包中有一些文本文件。我知道这个包叫什么,但我不一定知道这些文件叫什么。我希望能够读取此包中每个文本文件的内容。

我知道我可以使用 getClass().getResourceAsStream("filename.txt") 读取各个文件的内容,但正如我所说,我不一定知道文件的名称,只是它们所在的包。

那么,给定一个包名称,我如何获取该包中包含的所有文件的内容?

最佳答案

https://stackoverflow.com/a/12007322/1350762 添加我自己的答案作为社区维基。

您可以使用Spring提供的PathMatchingResourcePatternResolver

public class SpringResourceLoader {

    public static void main(String[] args) throws IOException {
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

        // Ant-style path matching
        Resource[] resources = resolver.getResources("/com/myapp/some/package/*");

        for (Resource resource : resources) {
            InputStream is = resource.getInputStream();
            ...
        }
    }
}

将其添加到您的 Maven 依赖项中(如果使用 Maven):

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

关于java - 读取特定包中文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324433/

相关文章:

java - 如何在 Java 中制作 InputStream 的深拷贝

当我启动 Delphi 时,Delphi 包未加载

java - 为什么小于 int 的数据类型中的两个数字相加会转换为 int?

java - 计算单词中的字符

java - 我应该关闭 org.apache.commons.io.IOUtils 的 InputStream

java - 将第三方对象传递给构造函数的最佳方法是什么

java - 检测由某些词组成的段落的可能性

Java阻塞队列为什么我们在入队时有notifyall,条件是queue.size==0?

python-3.x - python包中的requirements.txt

performance - Julia 包在第一次运行时加载速度非常慢