您的位置:首页 > 其它

利用FilenameFilter实现图片过滤器

2013-01-10 16:35 363 查看
利用FilenameFilter实现图片过滤器,实现过滤后缀为jpg/png/bmp的代码如下:

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

public class PicFilter {

private static boolean isJpg(String name) {
return name.toLowerCase().endsWith(".jpg");
}

private static boolean isPng(String name){
return name.toLowerCase().endsWith(".png");
}

private static boolean isBmp(String name){
return name.toLowerCase().endsWith(".bmp");
}

public static void main(String[] args){
File directory = new File("C:\\pic");
final String[] files = directory.list(new FilenameFilter(){
public boolean accept(File dir, String name) {
return isJpg(name) | isPng(name) | isBmp(name);
}});

for(String fileItem:files){
System.out.print(fileItem + "\n");
}

}
}


匿名内部类FilenameFilter的作用就是提供一个accept()的方法;利用此类,为list()提供accept()方法,当list()判断该返回哪些文件名的时候,能够"回过头来调用"accept(
)方法,这种结构通常被称为回调(callback)。

更准确地说,由于list()实现了基本功能,而FilenameFilter提供了"对外服务所需的算法",因此这是一种"策略模式(Strategy
Pattern)"。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: