/** 过滤器:
 *  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. bzoj1026题解

    [解题思路] 数位DP.f[i][j]表示以j结尾的i位数中windy数的个数,转移方程f[i][j]=Σf[i-1][k](|j-k|>1). 基于f数组,我们可以统计出1~n内的windy数 ...

  2. NX二次开发-UFUN获取当前显示部件的TAG,UF_PART_ask_display_part

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_part.h> UF_initialize ...

  3. NX二次开发-设置功能区工具栏的可见性UF_UI_set_ribbon_vis

    NX9+VS2012 1.打开D:\Program Files\Siemens\NX 9.0\UGII\menus\ug_main.men 找到装配和PMI,在中间加上一段 TOGGLE_BUTTON ...

  4. JVM内核-原理、诊断与优化学习笔记(二):JVM运行机制

    文章目录 JVM启动流程 PC寄存器 方法区 保存装载的类信息 通常和永久区(Perm)关联在一起 Java堆 Java栈 Java栈 – 局部变量表 ** 包含参数和局部变量 ** Java栈 – ...

  5. char型指针的初始化问题

    方法一:char *str = “abcd“区别在于你这里赋给str的是一个常量字符串,存储在静态全局区,因此str也成了一个指向常量的指针,不能通过指针对常量内容做任何更改,例如*(ch+2)='y ...

  6. 大神给你分析HTTPS和HTTP的区别

    今天在做雅虎的时候,发现用第三方工具截取不到客户端与服务端的通讯,以前重来没碰到过这种情况,仔细看了看,它的url请求时基于https的,gg了下发现原来https协议和http有着很大的区别.总的来 ...

  7. JVM 与 Linux 的内存关系详解

    来源:美团技术团队 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m. ...

  8. Python中and_Or

    自 http://www.cnblogs.com/BeginMan/p/3197123.html 一.and: 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返 ...

  9. python 17 异常

    自 http://www.cnblogs.com/BeginMan/p/3171445.html 一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发 ...

  10. 【洛谷】P1962

    题目链接:https://www.luogu.org/problemnew/show/P1962 题意:求fib数列的第n项,很大.mod 1e9+7. 题解:BM直接推. 代码: #include ...