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文件过滤器的更多相关文章

  1. java文件过滤器的使用

    前言: java.io.FileFilter(过滤器接口)boolean accept(File pathname) File类提供了如下方法使用过滤器:public File[] listFiles ...

  2. java 文件过滤器

    创建文件过滤器 MyFilter ,实现 FileFilter 接口,实现 accept() 方法: package com.test.IODemo1; import java.io.File; im ...

  3. java 文件过滤器 java.io.FilenameFilter

    File 类里有方法: String[] list(FilenameFilter filter)    返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录. File ...

  4. Java——文件过滤器

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  5. learning java 文件过滤器

    import java.io.File; public class FilenameFilterTest { public static void main(String[] args) { var ...

  6. java学习笔记(2):获取文件名和自定义文件过滤器

    //自定义文件过滤器import java.io.File; import javax.swing.filechooser.*; public class JavaChooser extends Fi ...

  7. java基础 File与递归练习 使用文件过滤器筛选将指定文件夹下的小于200K的小文件获取并打印按层次打印(包括所有子文件夹的文件) 多层文件夹情况统计文件和文件夹的数量 统计已知类型的数量 未知类型的数量

    package com.swift.kuozhan; import java.io.File; import java.io.FileFilter; /*使用文件过滤器筛选将指定文件夹下的小于200K ...

  8. java文件操作和文件过滤器

    文件操作 java提供了File类来供我们操作文件,FIle是文件或文件夹的抽象表示,也就是对象表示.总结了几个常用的方法 File(File parenrt,String child).FIle(S ...

  9. Java 之 文件过滤器

    在学习过滤器之前,先来做一个案例. 题目:文件搜索,搜索 D:\java 目录中 .java 文件. 分析: 1.  目录搜索,无法判断多少级目录,使用递归,遍历所有目录 2.  遍历目录时,获取的子 ...

随机推荐

  1. Public, Private and Protect

    public 意味着在其后声明的所有成员对所有的人都可以取. private 意味着除了该类型的创建者和类的内部成员函数之外,任何人都不能存取这些成员. protect 它与private基本相似,只 ...

  2. POJ 3080 Blue Jeans (多个字符串的最长公共序列,暴力比较)

    题意:给出m个字符串,找出其中的最长公共子序列,如果相同长度的有多个,输出按字母排序中的第一个. 思路:数据小,因此枚举第一个字符串的所有子字符串s,再一个个比较,是否为其它字符串的字串.判断是否为字 ...

  3. 深入浅出Java并发包—锁机制(一)

    前面我们看到了Lock和synchronized都能正常的保证数据的一致性(上文例子中执行的结果都是20000000),也看到了Lock的优势,那究竟他们是什么原理来保障的呢?今天我们就来探讨下Jav ...

  4. KDE/QT与GNOME/GTK比较

    转自:http://linux.chinaunix.net/bbs/thread-1125240-1-1.html 虽然在商业方面存在竞争,GNOME与KDE两大阵营的开发者关系并没有变得更糟,相反他 ...

  5. iOS 用命令实现简单的打包过程

    `xcode-select --print-path`/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication // 获得打包 ...

  6. 249. Group Shifted Strings

    题目: Given a string, we can "shift" each of its letter to its successive letter, for exampl ...

  7. BitMask 使用参考

    对于 Java 类应用,内存方面需要注意: 不要占用大量内存,否则可用内存少:触发 GC 或 OutOfMemoryError: 不要频繁创建对象,频繁内存分配,触发 GC. 对于枚举和常量: 使用枚 ...

  8. Sqlserver数据库分页查询

    Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID.YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询 ...

  9. Struts2 Package

    package 元素的所有属性及对应功能: Attribute Required Description name yes key to for other packages to reference ...

  10. checkbox 全选、全不选、反选 插件

    jquery.checkbox.js: ;(function($,window,document,undefined){ $.fn.check=function(mode){ mode= mode | ...