Java FilenameFilter interface can be implemented to filter file names when File class listFiles() method is used.

使用FilelistFiles()方法时,可以实现Java FilenameFilter接口来过滤文件名。

Java FilenameFilter (Java FilenameFilter)

Java FileNameFilter interface has method boolean accept(File dir, String name) that should be implemented and every file is tested for this method to be included in the file list.

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

From Java 8 onwards, FileNameFilter is a functional interface since it has a single method.

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

Java FilenameFilter示例 (Java FilenameFilter Example)

We can use FilenameFilter in java to find all the files of a specific extension in a directory. Below is the program showing how to use FileNameFilter in java.

我们可以在Java中使用FilenameFilter在目录中查找特定扩展名的所有文件。 以下是显示如何在Java中使用FileNameFilter的程序。

package com.journaldev.files;import java.io.File;
import java.io.FilenameFilter;public class FileNameFilterExample {public static void main(String[] args) {String dir = "/Users/pankaj/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 implementationpublic static class MyFileNameFilter implements FilenameFilter {private String extension;public MyFileNameFilter(String extension) {this.extension = extension.toLowerCase();}@Overridepublic boolean accept(File dir, String name) {return name.toLowerCase().endsWith(extension);}}}

MyFileNameFilter class implements FilenameFilter interface and accept method checks if the file name ends with specific extension or not. In the main method, we are invoking findFiles method that is using MyFileNameFilter to list xml files only. Note that MyFileNameFilter is written in a way to ignore case while checking for file extension.

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

具有lambda表达式的Java中的FileNameFilter (FileNameFilter in java with lambda expression)

Since FileNameFilter is a functional interface, we can reduce the above code by using a lambda expression. We won’t need to write the implementation at all.

由于FileNameFilter是一个功能接口 ,因此我们可以使用lambda表达式来减少上述代码。 我们根本不需要编写实现。

Below is the code to use the FileNameFilter with a lambda expression.

以下是将FileNameFilter与lambda表达式结合使用的代码。

File[] listFiles = file.listFiles((d, s) -> {return s.toLowerCase().endsWith(extension);
});

That’s all for java FileNameFilter example. I hope it will help you in listing files in a directory using some criteria.

这就是java FileNameFilter示例的全部内容。 我希望它可以帮助您使用某些条件列出目录中的文件。

GitHub Repository.GitHub存储库中签出更多Java IO示例。

翻译自: https://www.journaldev.com/845/java-filenamefilter-example

Java FileNameFilter示例相关推荐

  1. 大数据 java 代码示例_功能Java示例 第7部分–将失败也视为数据

    大数据 java 代码示例 这是称为" Functional Java by Example"的系列文章的第7部分. 我在本系列的每个部分中开发的示例是某种"提要处理程序 ...

  2. java方法示例注释 @_Java 8中的功能接口是什么? @功能注释和示例

    java方法示例注释 @ 函数接口是Java 8最重要的概念之一,实际上为lambda表达式提供了动力,但是许多开发人员没有首先了解函数接口在Java 8中的作用就花了很多精力来理解它,并花时间学习l ...

  3. java 方法 示例_Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射...

    java 方法 示例 大家好,这是我在该博客上发表的有关Java 9功能的第一篇文章,今天您将了解我最喜欢的功能"收集的工厂方法" ,它是JEP 269的一部分.JEP代表JDK增 ...

  4. java 观察者模式示例_观察者设计模式示例

    java 观察者模式示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如 ...

  5. java 泛型示例_使用Java泛型的模板方法模式示例

    java 泛型示例 如果您发现除了某些部分外,您的许多例程完全相同,那么您可能需要考虑使用Template Method来消除容易出错的代码重复 . 这是一个示例:下面是两个做类似事情的类: 实例化并 ...

  6. java 设计模式 示例_Java中的状态设计模式–示例教程

    java 设计模式 示例 状态模式是行为设计模式之一 . 当对象根据其内部状态更改其行为时,将使用状态设计模式. 如果必须根据对象的状态更改其行为,则可以在对象中使用状态变量,并使用if-else条件 ...

  7. java 设计模式 示例_Java中的访问者设计模式–示例教程

    java 设计模式 示例 访客模式是行为设计模式之一 . 当我们必须对一组相似类型的对象执行操作时,将使用访问者模式. 借助访问者模式,我们可以将操作逻辑从对象移动到另一个类. 例如,假设有一个购物车 ...

  8. java 观察者模式示例_Java中的观察者设计模式-示例教程

    java 观察者模式示例 观察者模式是行为设计模式之一 . 当您对对象的状态感兴趣并希望在发生任何更改时得到通知时,观察者设计模式很有用. 在观察者模式中,监视另一个对象状态的对象称为Observer ...

  9. java 设计模式 示例_Java中的中介器设计模式-示例教程

    java 设计模式 示例 中介者模式是行为设计模式之一 ,因此它处理对象的行为. 中介器设计模式用于在系统中不同对象之间提供集中式通信介质. 根据GoF,中介者模式意图是: 通过封装不同对象集相互交互 ...

最新文章

  1. 无法远程分发安装软件原因
  2. VHDL电子密码锁设计
  3. 实现 OutOfMemory​
  4. 计算机教师资格考试试题,全国教师资格考试信息技术练习题(二)
  5. Zookeeper Watch监听
  6. 使用二级域名+gh-pages分支构建自己的静态页面
  7. wps解析json数据_浏览器处理2500MB JSON文件的解析与绘图问题(实践分享,非战斗人员请忽略)...
  8. 腾讯校招技术岗面试经历及总结(已发offer)
  9. PostGIS 报错libcrypto
  10. kindle如何设置不闪屏_kindle闪屏怎么解决
  11. 学习金字塔——谈谈对学习的一点理解
  12. c语言实现utf-8编码解码器
  13. 申办高新技术企业,如何申请高新认定
  14. 关于游戏服务端的搭建
  15. 错误:找不到符号 类XXX 位置:程序包 com.xxx.xxx
  16. 腾讯人均月薪7.5w,我这是又被平均了?
  17. 大学毕业生必听十条人生忠告
  18. 大致总结一下 安卓各大版本的差异(安卓4以上版本)
  19. poj 3666 Making the Grade zoj 3512 Financial Fraud 左偏树 or dp
  20. 苹果手机如何显示定位服务器地址,iOS8定位服务在哪?苹果iPhone6/Plus开启或关闭定位方法图文介绍...

热门文章

  1. SharePoint 2010 technology stack
  2. POJ - 1008 Maya Calendar
  3. 转载:认识自我,把握机遇 —— 谢恩伟 (二)
  4. [转载] python mongodb update
  5. [转载] Python中filter筛选函数匿名参数问题
  6. [转载] Python基础:用Python统计列表中每个单词出现的次数(split 的使用,for双重循环)
  7. [转载] python无法从nltk中调取文本 from nltk.book import *
  8. [转载] gamma函数stiriling公式_数学笔记|特殊函数(1):Gamma函数
  9. [转载] HTML所有标签及其属性汇总
  10. Thread 相关函数和属性