Java 如何从文件的ArrayList中获取具有精确扩展名的文件 File f=新文件(“抽象路径名”); ArrayList文件=新的ArrayList(Arrays.asList(f.listFiles());
如何从该列表中获取具有特定扩展名的文件?您可以使用以下代码(Java 8)获取目录中的所有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
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中。看看