/*学习java,就是要慢慢学会自己验证一些方法的作用,以下是我对
* FilenameFilter 和FileFileter的验证:两个个过滤器结构都没有对外公开子类,在File学习阶段,主要是在File类的listFiles(FilenameFilter filter)
* 和listFiles(FileFilter filter) 两个方法中传参使用,接口内部只有一个方法accept,参数分别为(File dir, String name)和(File pathname)
* 所以,想要创建对象就必须重写accept方法。
* 特地说这两个借口的原因,也就在于accept方法的参数,因为我们在创建对象时,没有直接调用accept方法,刚一接触,最茫然的就是此方法的参数的意义
* 参数 File dir,其实就是你所建立的File的对象(即封装成File对象的路径),而参数String name则是File对象路径下的文件名。而参数File pathname
* 是File对象路径下的所有File子对象。
* 比较而言,在使用时前者更加简单。以下为两个接口使用的实例。实例中有专门的打印语句验证。method_1()和method_2()的结果是* 一样的
*/
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
public class Test
{
public static void main(String[] args) {
method_1();
}
static void method_1(){
File file=new File("E:\\My Applications");
File []fs=file.listFiles(new FilenameFilter(){
public boolean accept(File f,String s){
System.out.println("==="+f);
System.out.println(s);
return s.toLowerCase().endsWith(".txt");
}
});
for(File f:fs)
System.out.println(f);
}
static void method_2(){
File file=new File("E:\\My Applications");
File []fs=file.listFiles(new FileFilter(){
public boolean accept(File f){
System.out.println("---"+f);
String s=f.getName();
return s.toLowerCase().endsWith(".txt");
}
});
for(File f:fs)
System.out.println(f);
}
}
作用