请各位帮我解决一个关于文件过滤器的问题,谢谢!

Dreava 2006-02-22 10:10:31
我今天在TIJ上看到一个这样的例程(关于文件过滤器的):

import java.io.*;
import java.util.*;
import java.util.regex.*;

public class DirList {
public static void main(String[] args) {
File path = new File(".");
String[] list;
if(args.length == 0)
list = path.list();
else
list = path.list(new DirFilter(args[0]));//注释1
Arrays.sort(list);
for(int i = 0; i < list.length; i++){
System.out.println(list[i]);
}
}
}
class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
// Strip path information, search for regex:
return pattern.matcher(
new File(name).getName()).matches();
}
} ///:~
我的目的是想找出当前目录下的.java文件,请问在注释1的位置构建过滤器的参数应该怎么写,还有就是,给path.list()一个过滤器的实例,它将如何调用DirFilter的accept方法呢?多谢各位帮忙!
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dreava 2006-02-25
  • 打赏
  • 举报
回复
输出结果不对,输出的结果只是将当前目录下的所有的文件名输出来
infowain 2006-02-24
  • 打赏
  • 举报
回复
这种accept()通常可以称为回调函数,
这个函数由用户自己来撰写其内容,返回true或者false。上级类对每个文件名都会调用一次这个回调函数进行检查,判断是否要过滤掉这个文件。

另外,你编译的时候出错,还是程序执行的结果不对?
Dreava 2006-02-23
  • 打赏
  • 举报
回复
编译输出还是不行
还有我想问它是调用accept()的机制是怎样的?
infowain 2006-02-23
  • 打赏
  • 举报
回复
"\.java$"
这是一个正则表达式:匹配以.java结尾的文件名

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧