zoukankan      html  css  js  c++  java
  • FilenameFilter总结

    一、FilenameFilter介绍

     

    java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件;

    一般地:

    (1)String[] fs = f.list();

    (2)File[] fs = f.listFiles();

    这两个方法返回f下的所有文件或目录;

    FilenameFilter用来把符合要求的文件或目录返回;

    因此可以调用:

    (1)String []fs = f.list(FilenameFilter filter);;

    (2)File[]fs = f.listFiles(FilenameFilter filter);

    二、文件名过滤器一般用法

     

    1.实现FilenameFilter接口;

    2.实现boolean accept(File dir,String name);   //dir表示文件的当前目录,name表示文件名;

    class DirFilter implements FilenameFilter{

    private Pattern pattern;            

    public DirFilter(String regex){

    this.pattern = Pattern.compile(regex);

    }

    public boolean accept(File dir,String name){           //返回true的文件则合格

    }

    三、实例

    package test1;
    
    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.Arrays;
    import java.util.regex.Pattern;
    
    public class DirList {
        public static void main(String[] args){
            File path=new File(".");
            String[] list;
            if(args.length==0){
                list=path.list();
            }else{
                list=path.list(new DirFilter(args[0]));
            }
            Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
            for(String dirItem:list){
                System.out.println(dirItem);
            }
        }
    }
    
    class DirFilter implements FilenameFilter{
        private Pattern pattern;
        
        public DirFilter(String regex){
            pattern=Pattern.compile(regex);
        }
    
        @Override
        public boolean accept(File dir, String name) {    
            return pattern.matcher(name).matches();
        }
        
    }
  • 相关阅读:
    bzoj1178/luogu3626 会议中心 (倍增+STL::set)
    suoi31 最近公共祖先2 (倍增lca)
    luogu4155/bzoj4444 国旗计划 (倍增)
    [BZOJ1864][Zjoi2006]三色二叉树
    [Luogu3070][USACO13JAN]岛游记Island Travels
    [Luogu2458][SDOI2006]保安站岗
    [BZOJ1191][HNOI2006]超级英雄Hero
    [BZOJ1050][HAOI2006]旅行
    [Luogu2973][USACO10HOL]赶小猪Driving Out the Piggi…
    [BZOJ1833][ZJOI2010]数字计数
  • 原文地址:https://www.cnblogs.com/gengaixue/p/8066515.html
Copyright © 2011-2022 走看看