FilenameFilter接口修饰的文件过滤实例

package file_filter;

import java.io.File;
import java.io.FilenameFilter;

public class FileExtensionFilter implements FilenameFilter {
 private String extension = null;


 public FileExtensionFilter(String extension){
  this.extension = "."+extension.toLowerCase();
 }
 
 public boolean accept(File arg0, String arg1) {
  File temp = new File(arg0,arg1);
  if(temp.getName().toLowerCase().endsWith(extension)){
   return true;
  }
  return false;
 }
 public static void main(String []args){
  File currentDirection = new File(".");
  FileExtensionFilter javaFilter = new FileExtensionFilter("java");
  String [] javaFiles = currentDirection.list(javaFilter);
  for(int i=0; i<javaFiles.length; i++){
   System.out.println(javaFiles[i]);
   System.out.println(2);
  }
 }
}

public   interface   FilenameFilter   {
boolean   accept(文件目录,   字串名);
}

它指出这种类型的所有对象都提供了一个名为accept()的方法。之所以要创建这样的一个类,背后的全部原因就是把accept()方法提供给 list()方法,使list()能够“回调”accept(),从而判断应将哪些文件名包括到列表中。因此,通常将这种技术称为“回调”,有时也称为 “算子”。由于list()采用一个FilenameFilter对象作为自己的自变量使用,所以我们能传递实现了FilenameFilter的任何类的一个对象,用它决定(甚至在运行期)list()方法的行为方式。回调的目的是在代码的行为上提供更大的灵活性

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值