文件名过滤器FilenameFilter的用法

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

实例1,匹配指定字符结尾的文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package cn.test;
 
import java.io.File;
import java.io.FilenameFilter;
import org.junit.Test;
 
public class Demo4  {
    @Test
    public void test1(){
        File file = new File("D:/Temp");
        FilterBysuffix filter = new FilterBysuffix(".txt");
        String[] files = file.list(filter);
        for (String fileName : files){
            System.out.println(fileName);
        }
    }
}
 
 
 class FilterBysuffix implements FilenameFilter{
    private String suffix;
    public FilterBysuffix(String suffix){
        this.suffix=suffix;
    }
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(suffix);
    }
}

  结果:

实例2,正则匹配文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Test1 {
     
    @Test
    public void demo1() throws IOException{
        File file = new File("D:/tmp");
        FilterByMatches filterByMatches = new FilterByMatches(".*txt$");
        String[] files = file.list(filterByMatches);
        for(String f : files){
            System.out.println(f);
        }
    }
}
 
class FilterByMatches implements FilenameFilter{
    private String suffix;
    public FilterByMatches(String suffix){
        this.suffix=suffix;
    }
    public boolean accept(File dir, String name) {
        return name.matches(suffix);
    }
}

  结果:

 

posted @   头痛不头痛  阅读(3655)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩