JAVA 因简洁而美丽,因有效而动人 善待JAVA这颗种子的人,必将得到她的福荫

关于Java文件过滤器的两点疑问

上一篇 / 下一篇  2010-09-07 22:31:58 / 个人分类:java

文件搜索类FileFilterFilenameFilter
1.FileFilter经常会被这么使用
public class ExtensionFilter implements Filter {
    private String extension;
    public ExtensionFilter (String extension)
    {
      this.extension = extension;
    }
    pulbic boolean accept(File file)
   {
    if(file.isDirectory())
   { 
       return false;
   }
   String name=file.getName();
   int index=name.lastIndexOf(".");
   if(index == -1)
       return false;
   else if(index == name.length()-1)
       return false;
   else
       return this.extension.equals(name.subString(index+1));
   }
}
2.FilenameFilter会被这么用
public class ExtensionFilenameFilter implements FilenameFilter {
    public boolean (File dir,String filename)
    {
      return filename.toLowerCase().endsWith(".png")||filename.toLowerCase().endsWith(".gif")||filename.toLowerCase().endsWith(".jpg");
    }
}
3:测试用例
public TestFile {
    public static void main(String args[])
    {
    File file =new File(".");
   ExtensionFileFilter  txtFilter = new ExtensionFileFilter("txt");
    ExtensionFilenameFilter imageFilter = new ExtensionFilenameFilter();
    File files[] = file.list(txtFilter);
    for(int i= 0;i<files.length;i++)
   {
     System.out.println(files[i]);
   }
    File images[] = images.list(imageFilter);
    for(int i= 0;i<images.length;i++)
   {
     System.out.println(images[i]);
   }
   }
}
4:问题如下:
ExtensionFileFilter类中的accept()方法中的形参file并没有被用到,至少对外不可见。
ExtensionFilenameFilter类中的accept()方法中的dir形参并没有被用到,至少没有显示用到。
请问Accept()方法是如何被调用的?我们使用这两个类时,只是单单调用了构造方法呀。请高手解答一下。
 

TAG: FileFilter FilenameFilter java Java

笨瓜瓜的个人空间 引用 删除 houronghui   /   2010-09-15 23:17:54
终于好了,谢谢管理员。
笨瓜瓜的个人空间 引用 删除 houronghui   /   2010-09-13 22:01:42
哎呀,我的空间记录不了日志了怎么回事呀?
大家帮帮忙呀。
提示信息如下:
出错了,您所在的用户组目前没有权限使用本功能

点击此处返回操作前的页面
 

评分:0

我来说两句

Open Toolbar