`
huhu_long
  • 浏览: 71801 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FilenameFilter

阅读更多
FilenameFilter顾名思义,就是通过名字来过滤掉一些文件。

这个接口很简单, 不用多解释, 就只有一个accept方法:
boolean accept(File dir, String name);


那来看看第一种实现 - 创建一个实现类
public class ForFun {
	public static void main(String[] args) {
		File path = new File(".");
		String[] nameList = path.list(new DirFilter(".class"));
		for (String name : nameList) {
			System.out.println(name);
		}
	}

	static class DirFilter implements FilenameFilter {

		private String filter;

		public DirFilter(String filter) {
			this.filter = filter;
		}

		@Override
		public boolean accept(File dir, String name) {
			String f = new File(name).getName();
			return f.indexOf(filter) != -1;
		}

	}
}


意图很明确, 就是要打印出当前目录下面含有".class"的所有文件。

第二种实现, 使用匿名类
public class ForFun {
	public static void main(String[] args) {
		File path = new File(".");

		String[] nameList = path.list(filter(".class"));
		for (String name : nameList) {
			System.out.println(name);
		}
	}

	public static FilenameFilter filter(final String filterName) {
		return new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				String f = new File(name).getName();
				return f.indexOf(filterName) != -1;
			}
		};
	}
}


好, 这样也是没问题的。 接下来更简短, 但个人觉得没必要, 程序的可读性不好
public class ForFun {
	public static void main(String[] args) {
		File path = new File(".");
		String[] nameList = path.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				String f = new File(name).getName();
				return f.indexOf(".class") != -1;
			}
		});
		for (String name : nameList) {
			System.out.println(name);
		}
	}
}
分享到:
评论

相关推荐

    小程序------FilenameFilter 接口 过滤指定类型的文件

    在Java编程语言中,`FilenameFilter`接口是一个非常实用的工具,主要用于在文件系统操作中筛选特定类型的文件。这个接口包含一个方法,可以让你自定义文件名的过滤规则,从而在遍历目录时只处理满足条件的文件。下面...

    FilenameFilter的用法

    ### FilenameFilter的用法 #### 一、简介 FilenameFilter是一个在Java中广泛使用的接口,主要功能在于筛选特定目录下的文件或目录。该接口通常与`java.io.File`类中的`list(FilenameFilter filter)`和`listFiles...

    java核心编程之文件过滤类FileFilter和FilenameFilter

    Java 文件过滤类 FileFilter 和 FilenameFilter Java 中的文件过滤类 FileFilter 和 FilenameFilter 是两个非常重要的接口,用于过滤文件和目录。它们广泛应用于文件管理、搜索、备份、数据分析等领域。 ...

    Java使用FilenameFilter查找出目录下指定后缀的文件示例

    "Java使用FilenameFilter查找出目录下指定后缀的文件示例" Java语言中,FilenameFilter是一个非常有用的类,主要用于文件遍历和查找操作。今天,我们将通过一个实例,介绍如何使用FilenameFilter查找出目录下指定...

    IO输入输出留

    String [] name=f.list(new FilenameFilter() { public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(".zip"); } }); File [] files=f.listFiles(new ...

    FilenameFileter list 查看 java文件列表(过滤 java文件)

    在Java编程中,`FilenameFilter` 是一个接口,它用于过滤文件名,允许我们根据特定的文件扩展名或模式选择性地列出目录中的文件。在给定的标题和描述中,我们关注的是如何使用 `FilenameFilter` 来查看并列出只包含 ...

    java 查看任意路径的图片浏览器

    10. **文件遍历**:在读取指定路径下的所有图片时,需要使用`File`类的`listFiles()`或`listFiles(FilenameFilter)`方法,遍历目录中的所有文件,筛选出符合要求的图片文件。 以上就是“java 查看任意路径的图片...

    Java外文翻.doc

    除了`File`和`FilenameFilter`,Java I/O系统还包括许多其他类,如`InputStream`和`OutputStream`用于处理字节流,`Reader`和`Writer`处理字符流,`BufferedReader`和`BufferedWriter`提供缓冲功能以提高效率,`...

    Java毕业设计外文翻译.doc

    FilenameFilter 接口是一个专门负责挑选显示 File 对象的内容的类。它的 accept() 方法需要两个参数,一个是 File 对象,表示这个文件是在哪个目录里面的;另一个是 String,表示文件名。虽然你可以忽略它们中的一个...

    根据后缀名获取文件列表

    2. **listFiles(FilenameFilter)**:此方法允许我们传递一个`FilenameFilter`对象,它定义了文件名是否应包含在结果列表中的逻辑。通过自定义`FilenameFilter`,我们可以根据文件的后缀名筛选文件。 下面是一个简单...

    --java(译文+英文)—-毕业论文设计.docx

    File类的一个有用特性是支持FilenameFilter接口,允许我们根据特定条件筛选目录中的文件,例如,只显示扩展名为.java的文件。 以下是一个简单的示例,展示了如何使用File类和FilenameFilter接口列出并过滤目录中的...

    Java免费范文精选.docx

    以下是一个简单的示例,展示了如何使用匿名内部类创建一个过滤`.java`文件的`FilenameFilter`: ```java import java.io.*; public class DirList2 { public static FilenameFilter filter(String extension) { ...

    文件名过滤器

    为了更方便地查找和处理具有特定扩展名的文件,Java提供了`FilenameFilter`接口,该接口可以被用来创建自定义的文件名过滤器。通过实现这个接口,用户可以根据自己的需求编写过滤逻辑,从而在遍历目录时只获取符合...

    Java毕业设计外文翻译

    1. **定义FilenameFilter接口的实现**:通过创建匿名内部类实现FilenameFilter接口,其中`accept(File dir, String name)`方法用于判断文件名是否包含特定字符串。 2. **调用File类的list()方法**:传入...

    通配符比较

    例如,`list(FilenameFilter)`允许我们传入一个实现了`FilenameFilter`接口的类实例,该接口的`accept()`方法可以定义我们的通配符规则。例如,如果我们想找到所有以".txt"结尾的文件,我们可以创建一个过滤器: ``...

    外文翻译—Java(译文+英文).doc

    例如,`list()`方法可以用来获取目录中的文件名列表,而`list(FilenameFilter)`则允许通过实现`FilenameFilter`接口来过滤和筛选特定类型的文件。 在上述的`DirList`示例中,展示了如何使用`File`类和`...

    Java 实例 - 在指定目录中查找文件源代码-详细教程.zip

    2. **FilenameFilter接口**:当需要过滤特定类型的文件(例如,只查找.java源代码文件)时,可以实现`java.io.FilenameFilter`接口并自定义过滤逻辑。例如,我们可以创建一个过滤器,只允许扩展名为`.java`的文件...

    2022年Java基础面试题.doc

    总结以上,Java基础面试题主要涉及文件操作(获取路径、创建目录、读写文件)、过滤器的使用(如`FilenameFilter`)以及序列化和反序列化的概念。在实际开发中,这些基础知识是构建可靠和高效Java应用程序的基础。...

Global site tag (gtag.js) - Google Analytics