从Java中读取包中的所有文件

时间:2016-02-11 12:09:39

标签: java

我很想知道如何从Java中读取包中的所有条目。使用getRessource(),您可以获得单个文件。但是我想要他们! 我的计划是从文件夹/包中读取所有文件(不带子目录),然后使用Stream过滤条目。

希望你能帮助我。

3 个答案:

答案 0 :(得分:1)

您可以使用Spring Framework实现此目的。即使您没有开发Spring应用程序,您仍然可以使用它们的实用程序方法。您想使用PathMatchingResourcePatternResolver

public Resource[] getResources(String package)
{
    PathMatchingResourcePatternResolver pmrpr = new PathMatchingResourcePatternResolver();
    // turns com.myapp.mypackage into /com/myapp/mypackage/*
    return pmrpr.getResources("/" + package.replace(".", "/") + "/*");
}

供参考,见:

如果您使用的是Maven,请使用此依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>

答案 1 :(得分:0)

您可以使用Reflections库执行此操作。

可以创建一个反射对象并让它为您进行扫描。这就像做

之类的事情一样简单
Reflections reflections = new Reflections("my.package");
Set<String> resourceStrings = reflections.getResources(s -> true /*match all resources*/);
Set<URL> resources = resourceStrings.stream()
                                    .map(s -> getClass().getResource(s))
                                    .collect(Collectors.toSet())

答案 2 :(得分:-1)

您可以获取所有文件的列表,然后对其进行过滤:

File d = new File(System.getProperty("user.dir")); // user.dir returns the current working directory.

for(File f : d.listFiles())
{
    //do what you want to do
}