Java之FilenameFilter接口

FilenameFilter接口:是用于过滤文件的

要实现的是accept方法

实例代码:

1,匿名类实现FilenameFilter—–过滤指定类型文件

package File类过滤器;

import java.io.File;
import java.io.FilenameFilter;

public class Test {
    public static void main(String[] args){
        File file=new File("D:\\练习");
        File[] files=file.listFiles();

        //过滤前所有文件信息
        for(File file2:files){
            System.out.println(file2);
        }

        //现在要求过滤.txt为后缀的文件
        //使用匿名函数写过滤器
        System.out.println();
        System.out.println("过滤后的文件遍历结果:");
        File[] files2=file.listFiles(new FilenameFilter() {
            //想要保存的文件则,return true;反之return false
            @Override
            public boolean accept(File dir, String name) {
                File[] files=dir.listFiles();
                if(name.endsWith(".txt")){
                    return false;
                }
                return true;
            }
        });
        for(File file2:files2){
            System.out.println(file2);
        }

    }
}

运行结果
这里写图片描述

2,创建过滤类—-过滤文件夹

过滤类

package File类过滤器;

import java.io.File;
import java.io.FilenameFilter;

public class MyFilenameFilter implements FilenameFilter {

    @Override
    public boolean accept(File dir, String name) {
        //过滤文件夹
        File file=new File(dir,name);
        if(file.isDirectory()){
            return false;
        }

        return true;
    }

}

测试:

package File类过滤器;

import java.io.File;

public class Test2 {
    public static void main(String[] args) {
        File file=new File("D:\\练习");
        //过滤前所有文件
        File[] files=file.listFiles();
        for (File file2 : files) {
            System.out.println(file2);
        }

        //过滤:文件夹,后的结果
        System.out.println();
        System.out.println("过滤:文件夹,后的结果:");
        File[] files2=file.listFiles(new MyFilenameFilter());
        for (File file2 : files2) {
            System.out.println(file2);
        }
    }
}

运行结果:
这里写图片描述

posted @ 2017-05-01 10:38  TCB_Java  阅读(853)  评论(0编辑  收藏  举报