博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java FileNameFilter示例
阅读量:2537 次
发布时间:2019-05-11

本文共 3183 字,大约阅读时间需要 10 分钟。

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 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 since it has a single method.

java filenamefilter example

从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 implementation	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 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 , we can reduce the above code by using a . We won’t need to write the implementation at all.

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

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 example. I hope it will help you in listing files in a directory using some criteria.

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

. 签出更多Java IO示例。

翻译自:

转载地址:http://mqmzd.baihongyu.com/

你可能感兴趣的文章