日期:2014-05-20  浏览次数:20686 次

java中的FileFilter的使用 为什么不输出结果 求高手指教
代码如下:

import java.util.regex.*;
import java.io.*;
import java.lang.reflect.Array;

import java.util.*;
public class CallBack{
public static void main(String[] args) throws IOException{
File path=new File("D:\\workspace\\AI_WordSplit\\src");
String[] list;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
if(s.length()==0)
list=path.list();
else
list=path.list(new DirFilter(s));
Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
for(String st:list){
System.out.println(st);
}
}
}


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

public class DirFilter implements FilenameFilter {
  private Pattern pattern;
public DirFilter(String s) {
  pattern =Pattern.compile("java");
}

public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}

}


------解决方案--------------------
你是不是想只输出*.java的文件? 如果是则程序里面有两处错误:
第一个 如果不输入东西,这里没有进行过滤
Java code

if(s.length()==0)
list=path.list();