当使用File类的listFiles()方法时,可以实现FilenameFilter接口来过滤文件名。

Java FilenameFilter接口

Java FileNameFilter接口具有应该实现的方法boolean accept(File dir,String name),并且测试每个文件以使该方法包含在文件列表中。

从Java 8开始,FileNameFilter是一个功能接口,因为它只有一个方法。

Java FilenameFilter示例

在java中使用FilenameFilter来查找目录中特定扩展的所有文件。下面是演示如何在java中使用FileNameFilter过滤文件名称的程序。

import java.io.File;

import java.io.FilenameFilter;

public class FileNameFilterExample {

public static void main(String[] args) {

String dir = "D:/maxsu/temp";

String extension = ".doc";

findFiles(dir, extension);

}

private static void findFiles(String dir, String extension) {

File file = new File(dir);

if (!file.exists())

System.out.println(dir + " Directory doesn't exists");

File[] listFiles = file.listFiles(new MyFileNameFilter(extension));

// File[] listFiles = file.listFiles((d, s) -> {

// return s.toLowerCase().endsWith(extension);

// });

if (listFiles.length == 0) {

System.out.println(dir + "doesn't have any file with extension " + extension);

} else {

for (File f: listFiles)

System.out.println("File: " + dir + File.separator + f.getName());

}

}

// FileNameFilter接口的实现

public static class MyFileNameFilter implements FilenameFilter {

private String extension;

public MyFileNameFilter(String extension) {

this.extension = extension.toLowerCase();

}

@Override

public boolean accept(File dir, String name) {

return name.toLowerCase().endsWith(extension);

}

}

}

MyFileNameFilter类实现FilenameFilter接口中的accept()方法来检查文件名是否以特定扩展名结尾。在main方法中调用findFiles()方法,该方法使用MyFileNameFilter仅列出xml文件。请注意,MyFileNameFilter在检查文件扩展名时忽略大小写。

带有lambda表达式FileNameFilter实现

由于FileNameFilter是一个功能接口,可以使用lambda表达式来减少上面的代码。下面是使用带有lambda表达式的FileNameFilter实现代码。

File[] listFiles = file.listFiles((d, s) -> {

return s.toLowerCase().endsWith(extension);

});

上面就是java FileNameFilter过滤文件名称的全部内容,希望它能帮助您使用某些条件列出目录中的文件。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

java 过滤文件名_Java FileNameFilter过滤文件名相关推荐

  1. java 固定电话_Java 编写过滤手机号码或者固定电话的工具类

    以下是分享自己编写的用于过滤手机号码.固定电话.黑名单的工具类TelCheckUtils, import java.util.HashSet; import java.util.Set; import ...

  2. java输入文件名_java输入输出---读取文件名

    import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class ...

  3. java io流过滤流_JAVA io流 文件流 字节流 字符流 过滤流 缓冲流

    一.概念 1.1.按流向分类: 输入流: 程序可以从中读取数据的流. 输出流: 程序能向其中写入数据的流. 1.2.按数据传输单位分类: 字节流:以字节(8位二进制)为单位进行处理.主要用于读写诸如图 ...

  4. java 过滤字符串_java 过滤字符串方法实现

    这样过滤:"你TMD,也太缺德了吧"过滤后"你***,也太缺德了吧"把骂人的脏话过滤成*号 package test; import java.util.Has ...

  5. java 正则表达式过滤_java正则表达式过滤特殊字符

    Java用正则表达式 过滤特殊字符,只允许中文.字母Java用正则表达式 过滤特殊字符,只允许中文.字母或数字,该怎么写? String s1="我是正确测试数据aasdf2342343AS ...

  6. java 获取上传文件的格式_js和java获取上传文件的文件名以及上传文件格式判断...

    js获取文件名: //校验 function check(){ var fileType = $("#template").val(); //判断后缀是不是需要的文件类型 if(f ...

  7. java中过滤流_第十四讲 Java中的字节流和过滤流

    第十四讲Java中的字节流和过滤流 主要内容 InputStream和FileInputStream OutputStream和FileOutputStream 文件字节IO流应用举例 过滤流类和常用 ...

  8. java.io设计模式_Java IO文件过滤器对命令设计模式的使用

    一. 点睛 java io流里面使用到了很多的设计模式,最典型的就是装饰模式,还有命令模式.通过对文件过滤器功能的简单使用,可以一窥java io流对命令设计模式的典型使用.下面分两部分来讲,先举例说 ...

  9. java 运行异常处理_Java编程异常处理和I/O流

    重点: 1.在编写程序时,要正确地使用捕获例外和声明抛出异常的两种例外处理的方法. 2.遇到实际问题时,要根据需要正确使用各种输入/输出流,特别是对中文使用适当的字符输入流. 3.正确使用对象串行化的 ...

最新文章

  1. scala 处理 Response返回 时间报错问题
  2. 装饰器,闭包,高阶函数,嵌套函数
  3. Boost:有序的bimap双图的测试程序
  4. 爬虫抓取糯米网上所有商家数据
  5. PHP常用字符串函数小结
  6. php mysql刷新表格_PHP和AJAMYSQL数据库刷新表格
  7. [转]HttpWatch工具简介及使用技巧
  8. 处理一些常见的跨浏览器封装的函数
  9. 艾伟_转载:VS2008连接SQL Server数据库文件出错的解决方案
  10. 【水果识别】基于matlab GUI苹果质量检测及分级系统(带面板)【含Matlab源码 1613期】
  11. html网页设计插件,适用于网页设计的Photoshop插件包
  12. fw150us的linux驱动下载,迅捷FW150US1.0/2.0无线网卡驱动
  13. 2017年全国大学生电子设计竞赛 单相用电器分析监测装置(K题)
  14. html 苹果 地图,pdrLocationIos0508.html
  15. layui常用审核弹窗
  16. 要学习使用的安全工具
  17. 【传感器模块】 HC-SR501 人体红外感应模块 热释电 红外传感器
  18. 最牛ks短视频评论采集软件
  19. SSH命令行使用方法
  20. 西瓜大作战java 源码_魔改和上线你的合成大西瓜,最全教程!

热门文章

  1. python高级应用_Python高级编程技巧
  2. 计算机应用技术滨江计划,杭州高新区(滨江)列出干货满满的“计划表”
  3. Java黑皮书课后题第5章:5.12(求满足n方>12000的n的最小值)使用while循环找出满足n方大于12000的最小整数n
  4. 任意长度的高精度大整数加法
  5. atoi() 与 itoa()函数的内部实现
  6. 【洛谷 1969】积木大赛
  7. 几款流行的HTML5 UI 框架比较
  8. react——一个todolist的demo
  9. Mysql的基础使用之SQL原生语句的使用:表的 创建 删除 修改 (一)
  10. Android调试相关的技术常识