Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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 如何从文件的ArrayList中获取具有精确扩展名的文件 File f=新文件(“抽象路径名”); ArrayList文件=新的ArrayList(Arrays.asList(f.listFiles());_Java_File - Fatal编程技术网

Java 如何从文件的ArrayList中获取具有精确扩展名的文件 File f=新文件(“抽象路径名”); ArrayList文件=新的ArrayList(Arrays.asList(f.listFiles());

Java 如何从文件的ArrayList中获取具有精确扩展名的文件 File f=新文件(“抽象路径名”); ArrayList文件=新的ArrayList(Arrays.asList(f.listFiles());,java,file,Java,File,如何从该列表中获取具有特定扩展名的文件?您可以使用以下代码(Java 8)获取目录中的所有pdf文件: File f = new File("abstract_pathnames"); ArrayList<File> files = new ArrayList<File> (Arrays.asList(f.listFiles())); 例如,您可以使用以下代码(Java 8)获取目录的所有pdf文件: File f = new File("abstract_pathna

如何从该列表中获取具有特定扩展名的文件?

您可以使用以下代码(Java 8)获取目录中的所有
pdf
文件:

File f = new File("abstract_pathnames");
ArrayList<File> files = new ArrayList<File> (Arrays.asList(f.listFiles()));

例如,您可以使用以下代码(Java 8)获取目录的所有
pdf
文件:

File f = new File("abstract_pathnames");
ArrayList<File> files = new ArrayList<File> (Arrays.asList(f.listFiles()));
您可以使用过滤器来过滤文件。文件名通过字符串传递,以防止在列出文件时创建大量
file
对象

此类自JDK 1.0以来就存在

单扩展滤波器 Java7及更低版本示例:

File dir = new File("/myDirectory");
File[] files = dir.listFiles(f -> f.getName().endsWith(".pdf"));
List<File> files = new ArrayList<File>(Arrays.asList(f.listFiles(
    new FilenameFilter() {
        @Override 
        public boolean accept(File dir, String name) {
            return name.endsWith(".ext");
        }
    }
)));
List files=new ArrayList(Arrays.asList(f.listFiles(
新文件名筛选器(){
@凌驾
公共布尔接受(文件目录,字符串名称){
返回名称.endsWith(“.ext”);
}
}
)));
Java8示例:

File dir = new File("/myDirectory");
File[] files = dir.listFiles(f -> f.getName().endsWith(".pdf"));
List<File> files = new ArrayList<File>(Arrays.asList(f.listFiles(
    new FilenameFilter() {
        @Override 
        public boolean accept(File dir, String name) {
            return name.endsWith(".ext");
        }
    }
)));
List files=new ArrayList(Arrays.asList(f.listFiles(
(文件目录,字符串名称)->name.endsWith(“.ext”)
)));
多重扩展滤波器 过滤多个扩展时,它将变得更加困难。我们首先将允许的扩展存储在一个集合中,然后使用其contains()方法比较每个条目

List<File> files = new ArrayList<File>(Arrays.asList(f.listFiles(
    (File dir, String name) ->  name.endsWith(".ext")
)));
Set allowed=new HashSet();
允许。添加(“txt”);
允许。添加(“exe”);
允许。添加(“sh”);
然后我们在文件过滤器中按点拆分,并比较最后一部分:

Set<String> allowed = new HashSet<>();
allowed.add("txt");
allowed.add("exe");
allowed.add("sh");
List files=new ArrayList(Arrays.asList(f.listFiles(
新文件名筛选器(){
@凌驾
公共布尔接受(文件目录,字符串名称){
String[]split=name.split(\);
如果(split.length==1)
允许返回。包含(“”);
允许返回。包含(拆分[split.length-1]);
}
}
)));
您可以使用过滤器过滤文件。文件名通过字符串传递,以防止在列出文件时创建大量
file
对象

此类自JDK 1.0以来就存在

单扩展滤波器 Java7及更低版本示例:

File dir = new File("/myDirectory");
File[] files = dir.listFiles(f -> f.getName().endsWith(".pdf"));
List<File> files = new ArrayList<File>(Arrays.asList(f.listFiles(
    new FilenameFilter() {
        @Override 
        public boolean accept(File dir, String name) {
            return name.endsWith(".ext");
        }
    }
)));
List files=new ArrayList(Arrays.asList(f.listFiles(
新文件名筛选器(){
@凌驾
公共布尔接受(文件目录,字符串名称){
返回名称.endsWith(“.ext”);
}
}
)));
Java8示例:

File dir = new File("/myDirectory");
File[] files = dir.listFiles(f -> f.getName().endsWith(".pdf"));
List<File> files = new ArrayList<File>(Arrays.asList(f.listFiles(
    new FilenameFilter() {
        @Override 
        public boolean accept(File dir, String name) {
            return name.endsWith(".ext");
        }
    }
)));
List files=new ArrayList(Arrays.asList(f.listFiles(
(文件目录,字符串名称)->name.endsWith(“.ext”)
)));
多重扩展滤波器 过滤多个扩展时,它将变得更加困难。我们首先将允许的扩展存储在一个集合中,然后使用其contains()方法比较每个条目

List<File> files = new ArrayList<File>(Arrays.asList(f.listFiles(
    (File dir, String name) ->  name.endsWith(".ext")
)));
Set allowed=new HashSet();
允许。添加(“txt”);
允许。添加(“exe”);
允许。添加(“sh”);
然后我们在文件过滤器中按点拆分,并比较最后一部分:

Set<String> allowed = new HashSet<>();
allowed.add("txt");
allowed.add("exe");
allowed.add("sh");
List files=new ArrayList(Arrays.asList(f.listFiles(
新文件名筛选器(){
@凌驾
公共布尔接受(文件目录,字符串名称){
String[]split=name.split(\);
如果(split.length==1)
允许返回。包含(“”);
允许返回。包含(拆分[split.length-1]);
}
}
)));

您可以使用regexp表达式,如果匹配,则将其添加到arrayList中。看看您可以使用regexp表达式,如果匹配,将其添加到arrayList中。看看