FilenameFilter接口 --文件过滤

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


public class A {

    public static void main(String[] args) {
         File file = new File("E:/workspace/aaa/src");

         File[] listFiles = file.listFiles(new MyFileter());

         for(File f : listFiles){
             System.out.println(f.getName());
         }
    }

    static class MyFileter implements FilenameFilter {

        @Override
        public boolean accept(File file, String filename) {
            if (filename != null && filename.toLowerCase().endsWith(".java")) {
                return true;
            } else {
                return false;
            }
        }

    }
}

[JavaSE8基础 File FilenameFilter 筛选出指定后缀名的文件]

package jizuiku0;
 
import java.io.File;
import java.io.FilenameFilter;
 
/*
 * @version V17.09
 */
public class Filter {
    public static void main(String[] args) {
 
        // 找到E:\迅雷下载\下载合集中文件名以.xlsx结尾的文件
        String pathname = "E:\\迅雷下载\\下载合集";
        File file = new File(pathname);
 
        // 因为这里只筛选文件的名字,所以使用FilenameFilter接口
        // 使用匿名类
        // filesName中都是符合条件的文件的名字
        String[] filesName = file.list(new FilenameFilter() {
 
            // 这个函数是用来判断的
            @Override
            public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                // dir -> E:\迅雷下载\下载合集
                // name -> dir下 文件夹和文件的名字
                System.out.println(dir + "---" + name);
 
                // 是文件 并且 文件名以.xlsx结尾
                return new File(dir, name).isFile() && name.endsWith(".xlsx");
            }
        });// 这里的分号容易被忘记
 
        System.out.println("\n以.xlsx结尾的文件:");
        // 遍历
        for (String name : filesName) {
            System.out.println(name);
        }
    }
}
image.png

list()方法源码

public String[] list(FilenameFilter filter) {
    String names[] = list();
    if ((names == null) || (filter == null)) {
        return names;
    }
    List<String> v = new ArrayList<>();
    for (int i = 0 ; i < names.length ; i++) {
        if (filter.accept(this, names[i])) {
            v.add(names[i]);
        }
    }
    return v.toArray(new String[v.size()]);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,338评论 19 139
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,663评论 0 5
  • 心理规律一 :罗森塔尔效应 美国著名的心理学家罗森塔尔曾做过这样一个试验: 他把一群小白鼠随机地分成两组:A组和B...
    孔亚囡阅读 470评论 0 0
  • 你,着银鳞铁甲,吐百米长信,食山之精华,采日月灵气。寂静山林,蜿蜒前行,如雪的身躯滑过,那耀眼的光芒,照亮了静默的...
    明_霓阅读 2,857评论 5 509
  • 1 暑假前不久的一天,姐姐小曦放学后因为课堂作业没有完成,被留堂一个小时:本该4:30放学的她,一直到5:30左右...
    诺曦妈妈阅读 5,505评论 48 64

友情链接更多精彩内容