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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白磊 中级黑马   /  2013-5-5 16:30  /  1113 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        File[] files = f1.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith("java");
                        }
                });

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
        File f1 = new File(
                                "C:\\android\\worksapce\\HeiMa\\src\\cn\\heima\\test");
                // 比方说你指定一个工程目录 这里面有java 文件 txt文件
                // 而你只对java 文件感兴趣,那么你可以通过FilenameFilter 
                FilenameFilter filter = new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith("java");//根据名称的扩展名返回真假值 
                                //是java 结尾的就会给加入集合里面
                        }
                };
                File[] files = f1.listFiles(filter);//按照filter的标准返回集合
               
                //可以打印出来看
                for(File curr:files)
                {
                        System.out.println(curr.getAbsolutePath());
                }

编程风格好的代码一行一行十分清楚

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
楼主这段代码解决的问题是:將指定目录中文件名以“java”结尾的文件筛选出来。

   File[] files = f1.listFiles(new FilenameFilter() {
                        public boolean accept(File dir, String name) {
                                return name.endsWith("java");
                        }
                });
对这段代码进行解析,这里用到了匿名内部类,等效的代码是这样的:
  1. class SubFilenameFilter extends FilenameFilter{
  2.      public boolean accept(File dir, String name) {
  3.                                 return name.endsWith("java");
  4. }

  5. FilenameFilter fnf = new SubFilenameFilter();
  6. File[] files = f1.listFiles(fnf);
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马