File类ListFIles()中的过滤器学习和理解包含自定义过滤器实现FileFilter
package day180206;
import java.io.File;
/*
* File类的文件过滤器
* 遍历目录时可以根据自己需要只遍历自己需要的文件。
* 遍历目录方法listFiles()重载形式
* 在listFiles(FileFilter filter)接口类型
* 传递Filefilter接口的实现类
* 自定义FIlefiler接口实现类,重写抽象方法。
* 接口实现类传递给遍历方法listFiles
*/
public class FileDemo3 {
/*
* listFiles()遍历目录的同时,获取到了文件名全路径,调用过滤器的方法
* accept,将获取到的路径传递给accept方法的参数pathname
*/
public static void main(String[] args) {
File file=new File("J:\\");
File[] fileArr=file.listFiles(new Myfilter());
for(File f: fileArr){
System.out.println(f);
}
}
}
================================
package day180206;
import java.io.File;
import java.io.FileFilter;
/*
* 自定义过滤器
* 实现FileFilter接口,重写抽象方法。
*/
public class Myfilter implements FileFilter {
/*
* (non-Javadoc)
* @see java.io.FileFilter#accept(java.io.File)
* accept()方法接收到了参数pathname后参数是listFiles()传来的
* 在accept()的方法中进行判断,如果这个路径是java文件返回true.
*/
public boolean accept(File pathname) {
//String name=pathname.getName();
//name.endsWith(".java");
return pathname.getName().endsWith(".java");
}
}