Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java包中读取所有文件_Java - Fatal编程技术网

从Java包中读取所有文件

从Java包中读取所有文件,java,Java,我很想知道如何用Java阅读包中的所有条目。使用getRessource()可以获得单个文件。但是我想要所有的! 我的计划是从一个文件夹/包中读取所有文件(不带subdir),然后使用流过滤条目 希望您能帮助我。您可以获得所有文件的列表,然后对其进行筛选: File d = new File(System.getProperty("user.dir")); // user.dir returns the current working directory. for(File f : d.lis

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


希望您能帮助我。

您可以获得所有文件的列表,然后对其进行筛选:

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
}

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

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
}

您可以使用Spring框架实现这一点。即使您没有开发Spring应用程序,也可以使用它们的实用方法。您想使用路径匹配源模式解析器:

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

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


org.springframework
spring上下文
4.2.4.1发布

您可以使用Spring框架实现这一点。即使您没有开发Spring应用程序,也可以使用它们的实用方法。您想使用路径匹配源模式解析器:

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

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


org.springframework
spring上下文
4.2.4.1发布
您可以使用库执行此操作

您可以创建一个反射对象,让它为您进行扫描。这就像做这样的事情一样简单

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())
Reflections=newreflections(“my.package”);
设置resourceStrings=reflections.getResources(s->true/*匹配所有资源*/);
Set resources=resourceStrings.stream()
.map->getClass().getResource)
.collect(收集器.toSet())
您可以使用库执行此操作

您可以创建一个反射对象,让它为您进行扫描。这就像做这样的事情一样简单

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())
Reflections=newreflections(“my.package”);
设置resourceStrings=reflections.getResources(s->true/*匹配所有资源*/);
Set resources=resourceStrings.stream()
.map->getClass().getResource)
.collect(收集器.toSet())

你是从罐子里读出来的吗?从技术上讲,它是一个zip文件,所以你可以这样对待它。它的可能的重复与其说是重复的,不如说是重复的,因为这个主题是关于文件(资源),然而,另一个主题是关于类的。你从一个jar读它们吗?从技术上讲,它是一个zip文件,所以你可以这样对待它。它的可能的重复不是那么多的重复,因为这个主题是关于文件(资源),但是,另一个主题处理类。这看起来不错。现在user.dir给了我项目根文件夹中的所有文件。如何更改参数以获取特定目录(如src/test/resources)中的文件??如果我像这样更改参数,就会得到一个NullPointerException。@SaschaZeller将其连接起来。使用:
新文件(System.getProperty(“user.dir”)+“/src/test/resources”)
哇,你们这些家伙。。。这个答案充满了坏习惯。如果您的程序打包为jar呢?如果它是从构建目录之外启动的呢?为什么要连接文件路径?这完全违背了Java的精神,Java到处都是一次编写运行的,这看起来很不错。现在user.dir给了我项目根文件夹中的所有文件。如何更改参数以获取特定目录(如src/test/resources)中的文件??如果我像这样更改参数,就会得到一个NullPointerException。@SaschaZeller将其连接起来。使用:
新文件(System.getProperty(“user.dir”)+“/src/test/resources”)
哇,你们这些家伙。。。这个答案充满了坏习惯。如果您的程序打包为jar呢?如果它是从构建目录之外启动的呢?为什么要连接文件路径?这完全违背了Java的精神,Java到处都是一次编写运行的。