File过滤器
1、listFiles(FileFilter filter)
返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
作用:用来过滤文件(Filter对象)
listFiles会做的事:
a:如果里面不传FileFilter过滤器,就会返回抽象路径名数组
b:如果里面传FileFilter过滤器,那么就返回通过过滤器的返回值为true的元素组成的数组。(即符合过滤器的规则。)
/**
* @program: intellij idea
* @description:1、`listFiles(FileFilter filter)` 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
*2、`listFiles(FilenameFilter filter)` 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
* @author: lixy
* @create: 2020-05-07 12:42
**/
public class FileFilterImpl implements FileFilter {
@Override
public boolean accept(File pathname) {
return pathname.isFile() && pathname.getName().endsWith(".java");
}
}
public class Demo02Main {
public static void main(String[] args) {
bl(new File("F:\\intellij idea\\day11\\src\\com\\lixy"));
}
private static void bl(File dir) {
File[] files = dir.listFiles(new FileFilterImpl());
for (File file : files) {
System.out.println(file);
}
}
}
结果:
F:\intellij idea\day11\src\com\lixy\FileMethod.java
F:\intellij idea\day11\src\com\lixy\MyFile.java
public class Demo03Main {
public static void main(String[] args) {
bl(new File("F:\\intellij idea\\day11\\src\\com\\lixy"));
}
private static void bl(File dir) {
File[] files = dir.listFiles(new FileFilter() {//匿名内部类,
@Override
public boolean accept(File pathname) {
return pathname.isFile() && pathname.getName().endsWith(".java");
}
});
for (File file : files) {
System.out.println(file);
}
}
}
public class Demo04Main {
public static void main(String[] args) {
bl(new File("F:\\intellij idea\\day11\\src\\com\\lixy"));
}
private static void bl(File dir) {
//使用Lambda表达式
File[] files = dir.listFiles((pathname)->{return pathname.isFile() && pathname.getName().endsWith(".java");});
for (File file : files) {
System.out.println(file);
}
}
}
2、listFiles(FilenameFilter filter)
返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
public boolean accept(File dir, String name) {//测试指定文件是否应包含在文件列表中。
//参数
//dir - 找到该文件的目录。
//name - 文件的名称。
return new File(dir,name).isFile() && new File(dir,name).getName().endsWith(".java");
}
public class Demo03Main {
public static void main(String[] args) {
bl(new File("F:\\intellij idea\\day11\\src\\com\\lixy"));
}
private static void bl(File dir) {
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isFile() && name.endsWith(".java");
}
});
for (File file : files) {
System.out.println(file);
}
}
}