前言:

  文件IO是程序设计语言的一个特点,本文将针对Java的File文件名过滤进行测试。

测试目录截图:

测试结果:

data.txt
output-.txt
output-.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的一些内容并进行对比为是!

FilenameFilter过滤文件名的更多相关文章

  1. java小程序,用java在指定目录或以及子目录中找出同名文件,java File过滤文件名后找同名文件

    主要是使用java API“java.io.File”实现 一个简单的类,copy出来,因main方法可直接运行. package com.paic.icore.pams.auto.util; imp ...

  2. Java 知识笔记 - 类、集合、多线程、IO、JVM(最后一次更新,2019年02月17日)

    目录 Class 内部类.静态内部类.匿名内部类.局部内部类 Collection Java Collection Set Queue Map Collections Arrays System Co ...

  3. 文件名过滤器FilenameFilter的用法

    Java.io.FilenameFilter是文件名过滤器,用来过滤不符合规格的文件名,并返回合格的文件: 实例1,匹配指定字符结尾的文件 package cn.test; import java.i ...

  4. windows文件名非法字符过滤检测-正则表达式

    过滤文件名非法字符 windows现在已知的文件名非法字符有 \ / : * ? " < > | var reg = new RegExp('[\\\\/:*?\"&l ...

  5. 【转】File类应用 - FilenameFilter 和 FileFilter

    FilenameFilter & FileFilter FilenameFilter 和 FileFilter 都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码 ...

  6. 图解 Java IO : 二、FilenameFilter源码

    Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter   ...

  7. java在目录中过滤文件

    package com.zh.test; import java.io.File; import java.io.FilenameFilter; public class Test2 { /** * ...

  8. java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter

    FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFi ...

  9. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

随机推荐

  1. Eclipse Maven Spring MyBatis 配置

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  2. 原型设计Axure的基本使用

    Axure是一款专业的原型设计工具, 让负责定义需求设计:功能和界面的人员能快速设计出所需产品,其中不仅包含了对软件产品的界面,交互逻辑的原型设计,还包含了流程图:web网站的线框图,并且能导出说明文 ...

  3. HTML5学习总结——canvas绘制象棋(canvas绘图)

    一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...

  4. window下的各种宽高度小结

    详细的请打开这里看console.log window.innerWidth:  文档显示区(body)的宽度window.innerHeight  文档显示区(body)的高度window.outr ...

  5. eclipse启动tomcat无法访问

    eclipse启动tomcat无法访问 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误.同时其他项目页面也不能 ...

  6. hideSoftInputFromWindow

    有的时候会碰到软键盘不好关闭,然后就去调界面代码,发现不行,说到底还是对软键盘不熟悉的原因,软键盘windowSoftInputMode有很多种 如果你默认的activity的模式为默认的,或者sta ...

  7. [转]ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期

    在之前的三篇文章中,我们还算简明扼要的学习了asp.net的整个生命周期,我们知道了一个Request进来以后先去ISAPI Filter,发现是asp.net程序后又ASPNET_ISAPI.dll ...

  8. 阶段一:AsyncTask的三个属性值和四个步骤

    “阶段一”是指我第一次系统地学习Android开发.这主要是对我的学习过程作个记录. 最近学到用AsyncTask来处理有关网络的操作.虽然代码看上去不是很复杂,但仍有很多地方有疑惑.所以研读了一下A ...

  9. Android 手机卫士--参照文档编写选择器

    本文来实现<Android 手机卫士--导航界面1的布局编写>中的图片选择器部分的代码. 本文地址:http://www.cnblogs.com/wuyudong/p/5944356.ht ...

  10. 简历生成平台项目开发-STEP4第二次项目例会讨论

    时间:2016.7.15周五7点半 地点:图书馆 讨论主题:交流各自手头项目进展,确定下一步任务 内容:按照之前的讨论的任务大家各自汇报进度. 汇报人:谭卓.尹忠诚 内容:1.基于富文本编辑器的模板, ...