爱问知识人 爱问教育 医院库

大家看一下,一个java的io程序,谢谢了,结果有点不大对

首页

大家看一下,一个java的io程序,谢谢了,结果有点不大对

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class DirList {
  public static void main(String[] args) {
    File path=new File("C:\\Windows");
    String []list;
    list=path.list(new DirFilter("exe"));
    //list=paht.list();
    Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
    for(String  )
      System.out.println(dirItem);
  }

}
class DirFilter implements FilenameFilter{
  private Pattern pattern;
  DirFilter(String regex){
    pattern=Pattern.compile(regex);
  }
  public boolean accept(File dir,String name){
    return pattern.matcher(name).matches();
  }
}
此程序是现实windows文件夹下的所有exe文件,现在这么写是没有任何输出结果的,但如果把list=path.list(new DirFilter("exe"));注释掉,用list=paht.list();这个方法,则可现实windows文件夹下的所有文件,不懂为什么,我FilenameFilter这个接口的实现也没有写错啊

提交回答
好评回答
  • 2011-05-30 20:02:01
      你的正则表达式写得不对…
    import java。io。File; 
    import java。io。FilenameFilter; 
    import java。util。Arrays; 
    import java。util。regex。Pattern; 
    public class DirList { 
      public static void main(String[] args) { 
        File path=new File("C:\\Windows"); 
        String []list; 
        list=path。
      list(new DirFilter("\\w+\\。{1}exe")); //list=paht。list(); Arrays。sort(list,String。CASE_INSENSITIVE_ORDER); for(String ) System。
      out。println(dirItem); } } class DirFilter implements FilenameFilter{ private Pattern pattern; DirFilter(String regex){ pattern=Pattern。
      compile(regex); } public boolean accept(File dir,String name){ return pattern。matcher(name)。matches(); } } 去学下正则表达式吧 这个\\w+\\。
      {1}exe意思是以任意字母开头后面是exe的匹配 其实这样写比较好exe$ 另外如果不会用正则的话直接匹配最后三个字符就好了 方法这么写 public boolean accept(File f, String s){ return s。
      endsWith("。exe"); } 这样就简单多了。

    梦***

    2011-05-30 20:02:01

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 176-195
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):