您的位置:首页 > 其它

通过匿名内部类实现对文件的过滤

2015-08-22 11:28 260 查看
使用FileFileFilter匿名内部类实现对文件的过滤:

package com.blueZhangTest;

import java.io.File;
import java.io.FileFilter;

public class Demo5 {

public static void main(String[] args) {
listImages(new File("E:\\gp08\\day09"));
}

/**
* 使用内部类实现对文件的过滤 对目录中的结尾是.txt 的文件进行过滤
*
* @param file
*            搜索的目录
* */
static void listTxt(File file) {
File[] files = file.listFiles(new FileFilter() {

@Override
public boolean accept(File pathname) {
String name = pathname.getName();
if (name.endsWith("txt")) {
return true;
}
return false;
}
});
for (File f : files) {
System.out.println(f.getName());
}
}

/**
* 使用内部类实现通过对文件的过滤 找出file中的img文件
*
* @param file
*            表示的是要进行查找的文件或者是目录
* @return 如果是图片那么返回true 如果不是的话那么返回false
* @throws RuntimeException
* */
static void listImages(File file) {
if (!file.isDirectory()) {
throw new RuntimeException("指定的路径不是有效的目录");
}
// 通过匿名内部类实现过滤文件类型的接口
File[] files = file.listFiles(new FileFilter() {
// 如果指定的类型文件符合,返回true,否则返回false
@Override
public boolean accept(File pathname) {
String fileName = pathname.getName(); // a.bc.jpg
// 获得扩展名
String exName = fileName.substring(fileName.lastIndexOf(".") + 1);
// 判断扩展名的类型
if (exName.equals("jpg") || exName.equals("bmp")
|| exName.equals("png")) {
return true;
}
return false;
}
});
int count = 0;
for (File f : files) {
System.out.println(f.getName());
count++;
}
System.out.println("共有" + count + "张图片");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: