当前位置:网站首页>FilenameFilter过滤文件名
FilenameFilter过滤文件名
2022-08-09 14:48:00 【云海谷天】
前言:
文件IO是程序设计语言的一个特点,本文将针对Java的File文件名过滤进行测试。
测试目录截图:
测试结果:
data.txt
output-3.txt
output-4.txt
output-d.txt
people-id.txt
qqmusic_cn_seed.txt
text-a20.txt
--- finish ----版本一:接口继承
package com.yeezhao.common.io.v1;
import java.io.File;
import java.io.FilenameFilter;
import java.util.regex.Pattern;
public class MyFilenameFilter implements FilenameFilter {
final static String REGEX = ".*\\.txt";
@Override
public boolean accept(File dir, String name) {
return Pattern.matches(REGEX, name);
}
}package com.yeezhao.common.io.v1;
import java.io.File;
import java.util.Arrays;
public class FilenameFilterV1 {
public static void main(String[] args) throws Exception{
System.out.println("--- start ----");
File file = new File("c://test");
String[] list = file.list(new MyFilenameFilter());
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER); //忽略字符串大小写进行字典排序
for(String l:list){
System.out.println(l);
}
System.out.println("--- finish ----");
}
}版本二:内部类初始化内部对象属性
package com.yeezhao.common.io.v2;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class FilenameFilterV2 {
private static String REGEX =".*\\.txt";
private static FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return Pattern.matches(REGEX, name);
}
};
public static void main(String[] args) throws Exception {
File file = new File("c://test");
String[] list = file.list(filter);
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER); //忽略字符串大小写进行字典排序
for (String l : list) {
System.out.println(l);
}
System.out.println("--- finish ----");
}
}版本三:内部类直接调用方法
package com.yeezhao.common.io.v3;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class FilenameFilterV3 {
private static String REGEX =".*\\.txt";
public static void main(String[] args) {
File file = new File("c://test/");
String[] list = file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return Pattern.matches(REGEX, name);
}
});
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER); //忽略字符串大小写进行字典排序
for (String l : list) {
System.out.println(l);
}
System.out.println("--- finish ----");
}
}附:File对象的list()方法
后语:
Java.io涉及相当多的工具类,后续在研究之余希望能上手java.nio的一些内容并进行对比为是!
边栏推荐
猜你喜欢
随机推荐
STSW-LINK00x下载集合,百度云连接
The rising star DPU is revolutionizing the data center!
DSPE-PEG-Aldehyde,DSPE-PEG-CHO,磷脂-聚乙二醇-醛基MW:1000
Meta released 175 billion chatbots, and billionaire boss Xiao Zha was madly complained by "him"!
各种程序员线学习学习教程收集
[DevOps] jekins deployment (1)
C语言程序设计笔记(浙大翁恺版) 第九周:指针
C语言程序设计笔记(浙大翁恺版) 第六周:数据类型
benchmark性能测试
优化代码 —— 减少 if - else
约束性统计星号‘*’
C语言程序设计笔记(浙大翁恺版) 第五周:循环控制
Anaconda3安装后无法启动,启动闪退 2020-9
刷完这174道Android开发面试题,搞懂所有技术栈
shell提取ip地址
【Database】Sqlserver如何定时备份数据库和定时清除
大文件上传和下载场景,如何节省成本?
vivo手机上的系统级消息推送平台的架构设计实践
Architect's learning experience summary
spacedesk-notebook, tablet, extended screen-solve the problem that the tablet font is too small









