传统方式
package fileFilter;
import java.io.File;
/**
* 找出d盘中以.zip结尾的文件
*/
public class FileFilterDemo1 {
public static void main(String[] args) {
//对D盘进行遍历得到所有的子目录或文件
File file=new File("d:"+ File.separator);
File[] files = file.listFiles();
//对得到的数组进行遍历并筛选
for(File f:files){
if(f.isFile()){
//是否以.zip结尾
if(f.getName().endsWith( ".zip" )){
System.out.println(f);
}
}
}
}
}
使用FileFilter
package fileFilter;
import java.io.File;
import java.io.FileFilter;
/**
* 找出d盘中以.zip结尾的文件
*/
public class FileFilterDemo2 {
public static void main(String[] args) {
//对D盘进行遍历得到所有的子目录或文件
File file=new File("d:"+ File.separator);
/**
* 使用FileFilter过滤器在遍历过程中直接过滤,得到过滤后的File[]
*/
File[] files=file.listFiles( new FileFilter() {
@Override
public boolean accept(File file) {
//以.zip结尾的文件
return file.isFile()&&file.getName().endsWith( ".zip" );
}
} );
for (File f : files) {
System.out.println(f);
}
}
}
使用FilenameFilter
package fileFilter;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/**
* 找出d盘中以.zip结尾的文件
*/
public class FileFilterDemo3 {
public static void main(String[] args) {
//对D盘进行遍历得到所有的子目录或文件
File file=new File("d:"+ File.separator);
/**
* 使用FileNameFilter:文件名称过滤器
*/
File[] files=file.listFiles( new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
//dir:父目录 name:遍历到的文件名
File dest=new File( dir,name );
return dest.isFile()&&name.endsWith( ".zip" );
}
} );
for (File f : files) {
System.out.println(f);
}
}
}