public class MyFileFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
return true;
}}
public class FileFilterTest {
public static void main(String[] args) {
File file = new File("D:\\work\\abc");
File[] fileArr = file.listFiles(new MyFileFilter());
for (File file2 : fileArr) {
System.out.println(file2);
}
}
}
在主方法中 new MyFileFilter 匿名对象作为参数,那么过滤器MyFileFilter 中accept()方法将被调用。也就是listFiles()调用accept()方法。其中,pathname参数为主方法中file.listFiles()获取到的每一个文件
如果accept()方法返回true,则这个文件添加到fileArr数组中
如果accept()方法返回false,则这个文件不添加到fileArr数组中
例如 打印D:\work\abc文件夹下所有 .java 文件
如果想要所有 .java 文件
则如果是 .java 文件传进accept()方法中,则返回true
如果不是 .java 文件则返回false
public class FileFilterTest {
public static void main(String[] args) {
File file = new File("D:\\work\\abc");
File[] fileArr = file.listFiles(new MyFileFilter());
for (File file2 : fileArr) {
System.out.println(file2);
}
}
}
public class MyFileFilter implements FileFilter{
@Override
public boolean accept(File pathname) {
if(null == pathname){
return false;
}
if(pathname.isDirectory()){
return false;
}
if(null == pathname.getName() || "".equals(pathname.getName().trim())){
return false;
}
boolean flag = pathname.getName().toLowerCase().endsWith(".java");
return flag;
}}