java完成对图片文件名的过滤_FilenameFilter过滤文件名

本文介绍了如何使用Java的FilenameFilter接口对文件名进行过滤,特别是针对以.txt结尾的文件。通过三个不同的版本展示了实现方式,包括接口继承、内部类初始化和直接调用方法。示例代码展示了如何在指定目录中查找并打印符合筛选条件的文件名。
摘要由CSDN通过智能技术生成

前言:

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

测试目录截图:

1a79dba732879a9e43fd8c03a7c9df79.png

测试结果:

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()方法

3e8e70ef6c9ed302aa4d7b5b876b9ea5.png

后语:

Java.io涉及相当多的工具类,后续在研究之余希望能上手java.nio的一些内容并进行对比为是!

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

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

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

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

文件名过滤器FilenameFilter的用法

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

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

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

【转】File类应用 - FilenameFilter 和 FileFilter

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

图解 Java IO &colon; 二、FilenameFilter源码

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

java在目录中过滤文件

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

java基础知识回顾之javaIO类--File类应用&colon;过滤器接口FilenameFilter和FileFilter

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

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

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

随机推荐

Gruntjs&colon; grunt-usemin使用心得

grunt-usemin: Replaces references to non-optimized scripts or stylesheets into a set of HTML files u ...

css 妙味 总结

技巧一:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值