A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

/*学习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);
        }
}

2 个回复

倒序浏览
学习了,感谢楼主的分享。。。。。。。
回复 使用道具 举报
长知识了  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马