java 过滤文件名_Java FileNameFilter过滤文件名
當使用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过滤文件名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java基本数据类型与封装类 示例_Ja
- 下一篇: sql数据库和mysql有什么区别_【数