首页 > 基础资料 博客日记
FilenameFilter使用正则表达式匹配过滤文件名
2023-05-12 15:10:33基础资料围观634次
FilenameFilter接口提供了对文件名字符串的过滤,可以通过正则表达式对文件进行匹配。在实现FilenameFilter时,可以将正则表达式作为参数传入过滤方法中,并在方法中使用Matcher类进行匹配。
下面是一个示例代码:
import java.io.*; public class RegexFilter implements FilenameFilter { private final String pattern; public RegexFilter(String pattern) { this.pattern = pattern; } @Override public boolean accept(File dir, String name) { File f = new File(dir.getPath() + File.separator + name); return f.isFile() && name.matches(pattern); } public static void main(String[] args) { File dir = new File("."); String pattern = ".*\\.txt"; // 匹配所有以 .txt 结尾的文件 File[] files = dir.listFiles(new RegexFilter(pattern)); if (files != null) { for (File file : files) { System.out.println(file.getName()); } } } }
在上面的示例中,RegexFilter类用于过滤符合指定正则表达式的文件。accept方法的实现中使用了Matcher.matches()方法来进行文件名匹配,匹配成功返回true,否则返回false。在main方法中,将目录和正则表达式传入listFiles()方法来获取所有符合条件的文件列表。
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?