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);
}
}
}
分享到:
相关推荐
在Java编程语言中,`FilenameFilter`接口是一个非常实用的工具,主要用于在文件系统操作中筛选特定类型的文件。这个接口包含一个方法,可以让你自定义文件名的过滤规则,从而在遍历目录时只处理满足条件的文件。下面...
### FilenameFilter的用法 #### 一、简介 FilenameFilter是一个在Java中广泛使用的接口,主要功能在于筛选特定目录下的文件或目录。该接口通常与`java.io.File`类中的`list(FilenameFilter filter)`和`listFiles...
Java 文件过滤类 FileFilter 和 FilenameFilter Java 中的文件过滤类 FileFilter 和 FilenameFilter 是两个非常重要的接口,用于过滤文件和目录。它们广泛应用于文件管理、搜索、备份、数据分析等领域。 ...
"Java使用FilenameFilter查找出目录下指定后缀的文件示例" Java语言中,FilenameFilter是一个非常有用的类,主要用于文件遍历和查找操作。今天,我们将通过一个实例,介绍如何使用FilenameFilter查找出目录下指定...
String [] name=f.list(new FilenameFilter() { public boolean accept(File dir, String name) { return name.toLowerCase().endsWith(".zip"); } }); File [] files=f.listFiles(new ...
在Java编程中,`FilenameFilter` 是一个接口,它用于过滤文件名,允许我们根据特定的文件扩展名或模式选择性地列出目录中的文件。在给定的标题和描述中,我们关注的是如何使用 `FilenameFilter` 来查看并列出只包含 ...
- **FilenameFilter接口的用途**:`FilenameFilter`接口用于过滤文件名,通常与`File`类的`list()`方法一起使用,以便只返回满足特定条件的文件名。 - **FilenameFilter接口的实现**: - 实现`FilenameFilter`接口...
10. **文件遍历**:在读取指定路径下的所有图片时,需要使用`File`类的`listFiles()`或`listFiles(FilenameFilter)`方法,遍历目录中的所有文件,筛选出符合要求的图片文件。 以上就是“java 查看任意路径的图片...
除了`File`和`FilenameFilter`,Java I/O系统还包括许多其他类,如`InputStream`和`OutputStream`用于处理字节流,`Reader`和`Writer`处理字符流,`BufferedReader`和`BufferedWriter`提供缓冲功能以提高效率,`...
FilenameFilter 接口是一个专门负责挑选显示 File 对象的内容的类。它的 accept() 方法需要两个参数,一个是 File 对象,表示这个文件是在哪个目录里面的;另一个是 String,表示文件名。虽然你可以忽略它们中的一个...
2. **listFiles(FilenameFilter)**:此方法允许我们传递一个`FilenameFilter`对象,它定义了文件名是否应包含在结果列表中的逻辑。通过自定义`FilenameFilter`,我们可以根据文件的后缀名筛选文件。 下面是一个简单...
File类的一个有用特性是支持FilenameFilter接口,允许我们根据特定条件筛选目录中的文件,例如,只显示扩展名为.java的文件。 以下是一个简单的示例,展示了如何使用File类和FilenameFilter接口列出并过滤目录中的...
以下是一个简单的示例,展示了如何使用匿名内部类创建一个过滤`.java`文件的`FilenameFilter`: ```java import java.io.*; public class DirList2 { public static FilenameFilter filter(String extension) { ...
为了更方便地查找和处理具有特定扩展名的文件,Java提供了`FilenameFilter`接口,该接口可以被用来创建自定义的文件名过滤器。通过实现这个接口,用户可以根据自己的需求编写过滤逻辑,从而在遍历目录时只获取符合...
1. **定义FilenameFilter接口的实现**:通过创建匿名内部类实现FilenameFilter接口,其中`accept(File dir, String name)`方法用于判断文件名是否包含特定字符串。 2. **调用File类的list()方法**:传入...
例如,`list(FilenameFilter)`允许我们传入一个实现了`FilenameFilter`接口的类实例,该接口的`accept()`方法可以定义我们的通配符规则。例如,如果我们想找到所有以".txt"结尾的文件,我们可以创建一个过滤器: ``...
例如,`list()`方法可以用来获取目录中的文件名列表,而`list(FilenameFilter)`则允许通过实现`FilenameFilter`接口来过滤和筛选特定类型的文件。 在上述的`DirList`示例中,展示了如何使用`File`类和`...
2. **FilenameFilter接口**:当需要过滤特定类型的文件(例如,只查找.java源代码文件)时,可以实现`java.io.FilenameFilter`接口并自定义过滤逻辑。例如,我们可以创建一个过滤器,只允许扩展名为`.java`的文件...
总结以上,Java基础面试题主要涉及文件操作(获取路径、创建目录、读写文件)、过滤器的使用(如`FilenameFilter`)以及序列化和反序列化的概念。在实际开发中,这些基础知识是构建可靠和高效Java应用程序的基础。...