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

java文件过滤器

时间:2015-11-18 22:39:57      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

java中有一个FilenameFilter的接口,能够过滤得到指定类型的文件或者目录,其中必须重写accept(File file,String path)方法

public class DirFilter implements FilenameFilter{

  private String type;

  public DirFilter(String tp){

    this.type=tp;

  }

 

  public boolean accept(File fl,String path) throws Exception{

     File file=new File(path);

     String filename=file.getName();

     return filename.indexOf(type)!=-1;

  }

}

 

具体应用方法:File假如是一个Directory,可以通过list()方法得到这个目录下所有的文件和目录的名称数组,list()方法,一种是没有参数,一种是实现FilenameFilter接口的参数,例如要获得一个指定目录下的所有的java文件,就要使用第二种带参数的list()方法

 

public class Test{

  public static void main(String[] args){

    try{

      //指定目录(“.”表示当前目录)

      File dir=new File(".");

      String[] names;

      //获得所有java文件

      DirFilter filter=new DirFilter(".java");

      names=dir.list(filter);

      //打印所有java文件名称

      for(int i=0;i<names.length;i++){

        System.out.println("i:"+i+" name:"+names[i]);

      }

    }catch(Exception e){

      e.printStackTrace();

    }

  }

}

 

其中这里还可以将DirFilter类作为Test的一个匿名内部类来实现,例如:

public class Test{

  //type:必须声明为final类型,作为一个匿名内部类,访问的变量都必须声明为final类型

  public static FilenameFilter filter(final String type) throws Exception{

    return new FilenameFilter(){

      public boolean accept(File file,Stirng path){

        String filename=new File(path).getName();

        return filename.indexOf(type)!=-1;

        } 

      };   

  }

 

  public static void main(String[] args){

    try{    

      File file=new File(".");

      String names[];

      names=file.list(filter(".java");

      for(int i=0;i<names.length;i++){

        System.out.println("i:"+i+" filename:"+names[i]);

      }

    catch(Exception e){

      e.printStackTrace();

    }

 

  }  

}

 

//基础知识1:在一个java文件中,有且只能有一个公共类,即类的修饰符为public

//基础知识2:接口中所定义的任何对象默认作用域都为public

//基础知识3:Exception的命名空间为java.lang.Exception

java文件过滤器

标签:

原文地址:http://www.cnblogs.com/lijia0511/p/4975953.html

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