/** 过滤器:
 *  File类中有两个和listFiles方法重载的方法,方法的参数就是过滤器
 *  listFiles(FileFilter filter)
 *  java.io.FileFilter接口
 *  作用:用来过滤文件(File对象)
 *  抽象方法:用来皈依了文件的方法
 *      boolean accept(File pathname)测试指定抽象路径名是否应该包含在某路径名列表中
 *      参数File pathname:使用listFile方法遍历目录得到的每一个文件对象
 *  listFile(FilenameFilter filter):
 *
 *  java.io.FilenameFilter接口:
 *  作用:用于过滤文件名称
 *  accept(File dir,Setring name)测试指定文件是否应该包含在某一文件列表中
 *  参数:
 *      File dir:构造方法中传递的被遍历目录
 *      Setring name:使用ListFiles方法遍历目录,获取的每一个文件/文件夹的名称
 *  注意:
 *      两个过滤器接口没有实现类,需要自己写实现类,重写过滤方法accept,在方法中自己定义过滤规则
 */
 public static void main(String[] args) {
     //使用过滤器找出指定文件夹下的.java文件
     File f1 = new File("F:\\FileTest");
     String nameLower = ".java";
     getAllFile(f1,nameLower);
 }
 //定义查找指定后缀文件的方法
     public static void getAllFile(File dir,String name){
         File[] file = dir.listFiles(new FilenameFilterimp());
         for (File f : file) {
             if(f.isFile()) {

                 System.out.println(f);
             }else if(f.isDirectory()){
                 getAllFile(f,name);
             }
         }
     }
 }

 class FilenameFilterimp implements FileFilter {

     @Override
     public boolean accept(File pathname) {
         if (pathname.isDirectory()) {
             return true;
         }return pathname.getName().toLowerCase().endsWith(".java");
     }
 }
 public static void main(String[] args) {
     //使用过滤器找出指定文件夹下的.java文件
     File f1 = new File("F:\\FileTest");
     String nameLower = ".java";
     getAllFile(f1,nameLower);
 }
     //定义查找指定后缀文件的方法
     public static void getAllFile(File dir,String name){
         File[] file = dir.listFiles(new FileFilter() {
             @Override
             public boolean accept(File pathname){ if (pathname.isDirectory()) { return true; }return pathname.getName().toLowerCase().endsWith("java"); }});
         for (File f : file) {
             if(f.isFile()) {

                 System.out.println(f);
             }else if(f.isDirectory()){
                 getAllFile(f,name);
             }
         }
     }
 }

java_过滤器的更多相关文章

  1. Java_框架面试题

    Java_框架面试题 欢迎来我Git上分享您的优秀建议 1.Spring框架分为哪七大模块,各模块的主要功能作用是什么? 七大模块,如下: 1. Spring Core: Core封装包是框架的最基础 ...

  2. ASP.NET Core 中文文档 第四章 MVC(4.3)过滤器

    原文:Filters 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:何镇汐 ASP.NET MVC 过滤器 可在执行管道的前后特定阶段执行代码.过滤器可以配置为全局有效.仅对控 ...

  3. ASP.NET Web API 过滤器创建、执行过程(二)

    ASP.NET Web API 过滤器创建.执行过程(二) 前言 前面一篇中讲解了过滤器执行之前的创建,通过实现IFilterProvider注册到当前的HttpConfiguration里的服务容器 ...

  4. ASP.NET Web API 过滤器创建、执行过程(一)

    ASP.NET Web API 过滤器创建.执行过程(一) 前言 在上一篇中我们讲到控制器的执行过程系列,这个系列要搁置一段时间了,因为在控制器执行的过程中包含的信息都是要单独的用一个系列来描述的,就 ...

  5. ABP(现代ASP.NET样板开发框架)系列之13、ABP领域层——数据过滤器(Data filters)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之13.ABP领域层——数据过滤器(Data filters) ABP是“ASP.NET Boilerplate P ...

  6. AngularJS过滤器filter-时间日期格式-渲染日期格式-$filter

    今天遇到了这些问题索性就 写篇文章吧 话不多说直接上栗子 不管任何是HTML格式还是JS格式必须要在  controller 里面写 // new Date() 获取当前时间 yyyy-MM-ddd ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统(40)-精准在线人数统计实现-【过滤器+Cache】

    系列目录 上次的探讨没有任何结果,我浏览了大量的文章和个别系统的参考!决定用Cache来做,这可能有点难以接受但是配合mvc过滤器来做效果非常好! 由于之前的过滤器我们用过了OnActionExecu ...

  8. Hawk 4.2 过滤器

    过滤器可以在流中,过滤掉不符合条件的文档.当然也可勾选反向,此时只会留下不符合条件的文档. 空对象过滤器 最为常用,需要列名,可以过滤掉所有内容为Null,或字符串全部都是空字符的情况 数值范围过滤 ...

  9. 实现MVC自定义过滤器,自定义Area过滤器,自定义Controller,Action甚至是ViewData过滤器

    MVC开发中几种以AOP方式实现的Filters是非常好用的,默认情况下,我们通过App_Start中的FilterConfig来实现的过滤器注册是全局的,也就是整个应用程序都会使用的,针对单独的Fi ...

随机推荐

  1. 暑期集训日志(Day6~Day17)

    章·十七:2019-07-28:为谁辛苦为谁甜 ·昨日小结 颓爆了QAQ,昨天又垫底了. 最简单一道题弃疗的我直接被甩倒了总榜垫底…… 我……不想说啥…… 我是渣比. 我不能颓废了. 醒来啊麦克白! ...

  2. 线性dp——hdu6578经典dp

    多校第一场第一题,这种类型的dp之前做过两题,状态转移一般是从当前状态往后推的 很经典的dp,不过很卡时间 /* 定义 dp[t][i][j][k]代表填完前 t 个位置后,{0, 1, 2, 3} ...

  3. Python pillow库安装报错

    报错信息: D:\pythontest\duanxinhongzha>pip3 install pillowCollecting pillow Could not find a version ...

  4. NX二次开发-UFUN删除链表函数UF_MODL_delete_list

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_obj.h> #include <u ...

  5. HDU6440 Dream 2018CCPC网络赛-费马小定理

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面.  给定一个素数p ...

  6. 开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误

    开发中运行mysql脚本,发现提示mysql提示Column count doesn't match value count at row 1错误, 调试后发现是由于写的SQL语句里列的数目和后面的值 ...

  7. Ubuntu 18.04.2 aliases 设置永久生效解决方案

    设置 临时 alias alias ll="ls -al" 缺点是下次登录时就不生效了 永久生效解决方案 进入到 etc 文件夹下 cd /etc/ 创建 bash_aliases ...

  8. jQuery 基本选择器

    1 基本选择器 $(‘#id属性值’)  ----------->document.getElementById() $(‘tag标签名称’)----------->document.ge ...

  9. 新手git遇到的问题

    1. 如何撤销git add,不小心执行了git add . 操作,但是又不能提交所有的文件,因为对应不同的分支,现在怎么样可以将git add 撤销回来? 解决:git reset HEAD(暂时尝 ...

  10. 2.用Python套用Excel模板,一键完成原亮样式

    from xlutils.copy import copy import xlrd import xlwt tem_excel=xlrd.open_workbook('日统计.xls',formatt ...