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. PKU 1458 Common Subsequence(最长公共子序列,dp,简单)

    题目 同:ZJU 1733,HDU 1159 #include <stdio.h> #include <string.h> #include <algorithm> ...

  2. 使用预处理PreparedStatement执行Sql语句

    /** * 使用预处理的方式执行Sql * @param sql Sql语句 * @param obj 变量值数组 * @return 查询结果 * @throws SQLException */ p ...

  3. *[codility]Fish

    https://codility.com/demo/take-sample-test/fish 一开始习惯性使用单调栈,后来发现一个普通栈就可以了. #include <stack> us ...

  4. java登陆验证码与JS无刷新验证

    最近公司的项目的登陆模块由我负责,所以就做了个登陆小功能进行练手,其包括了用jQuery对用户名和密码进行不为null验证,和出于安全性考虑加了一个验证码的校验 别的不说先上代码 controller ...

  5. HTML5入门1---Canvas画布

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  6. Python基本程序结构

    条件判断: 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断.比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:

  7. Intellij IDEA 新建一个EJB工程(三)

    之前都是用IDEA启动JBoss服务器,并在启动的同时将EJB项目部署上去.在构建 artifacts 时遇到很多问题,明明是EJB项目却不能用EJB导出,真是奇怪~~ 后来用Web Applicat ...

  8. linux用VSFTP搭建FTP服务器

    一般在各种linux的发行版中,默认带有的ftp软件是vsftp,从各个linux发行版对vsftp的认可可以看出,vsftp应该是一款不错的ftp软件. sudo apt-get install v ...

  9. C#语句及案例

    今天学习了,C#语句部分的分支语句,差点转不过弯来. 语句分类: 1.顺序语句 2.选择语句(分支语句) 3.循环语句 分支语句 (一)if(){} ; 按照顺序哪个if条件适合,执行哪个. 不合适就 ...

  10. 车牌识别LPR系统系列文章汇总

    这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...