码迷,mamicode.com
首页 > 编程语言 > 详细

java_过滤器

时间:2019-07-29 11:40:25      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:遍历   抽象   new   路径   sys   OLE   rri   test   filter   

 1 /** 过滤器:
 2 *  File类中有两个和listFiles方法重载的方法,方法的参数就是过滤器
 3 *  listFiles(FileFilter filter)
 4 *  java.io.FileFilter接口
 5 *  作用:用来过滤文件(File对象)
 6 *  抽象方法:用来皈依了文件的方法
 7 *      boolean accept(File pathname)测试指定抽象路径名是否应该包含在某路径名列表中
 8 *      参数File pathname:使用listFile方法遍历目录得到的每一个文件对象
 9 *  listFile(FilenameFilter filter):
10 *
11 *  java.io.FilenameFilter接口:
12 *  作用:用于过滤文件名称
13 *  accept(File dir,Setring name)测试指定文件是否应该包含在某一文件列表中
14 *  参数:
15 *      File dir:构造方法中传递的被遍历目录
16 *      Setring name:使用ListFiles方法遍历目录,获取的每一个文件/文件夹的名称
17 *  注意:
18 *      两个过滤器接口没有实现类,需要自己写实现类,重写过滤方法accept,在方法中自己定义过滤规则
19 */
20 public static void main(String[] args) {
21     //使用过滤器找出指定文件夹下的.java文件
22     File f1 = new File("F:\\FileTest");
23     String nameLower = ".java";
24     getAllFile(f1,nameLower);
25 }
26 //定义查找指定后缀文件的方法
27     public static void getAllFile(File dir,String name){
28         File[] file = dir.listFiles(new FilenameFilterimp());
29         for (File f : file) {
30             if(f.isFile()) {
31 
32                 System.out.println(f);
33             }else if(f.isDirectory()){
34                 getAllFile(f,name);
35             }
36         }
37     }
38 }
39 
40 class FilenameFilterimp implements FileFilter {
41 
42     @Override
43     public boolean accept(File pathname) {
44         if (pathname.isDirectory()) {
45             return true;
46         }return pathname.getName().toLowerCase().endsWith(".java");
47     }
48 }
 1 public static void main(String[] args) {
 2     //使用过滤器找出指定文件夹下的.java文件
 3     File f1 = new File("F:\\FileTest");
 4     String nameLower = ".java";
 5     getAllFile(f1,nameLower);
 6 }
 7     //定义查找指定后缀文件的方法
 8     public static void getAllFile(File dir,String name){
 9         File[] file = dir.listFiles(new FileFilter() {
10             @Override
11             public boolean accept(File pathname){ if (pathname.isDirectory()) { return true; }return pathname.getName().toLowerCase().endsWith("java"); }});
12         for (File f : file) {
13             if(f.isFile()) {
14 
15                 System.out.println(f);
16             }else if(f.isDirectory()){
17                 getAllFile(f,name);
18             }
19         }
20     }
21 }

 

java_过滤器

标签:遍历   抽象   new   路径   sys   OLE   rri   test   filter   

原文地址:https://www.cnblogs.com/aikang525/p/11262865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!