1. 文件过滤器
public class FileDemo {
public static void main(String[] args) {
File file=new File("G:\\aaa");
method(file);
}
private static void method(File file) {
// File[] files = file.listFiles(new FileFilter() {
// @Override
// public boolean accept(File pathname) {
// return pathname.getName().endsWith(".java")||pathname.isDirectory();
// }
// });
//lambda表达式改进
File[] files = file.listFiles((pathname)-> pathname.getName().endsWith(".java")||pathname.isDirectory());
for (File file1:files){
if (file1.isFile()){
System.out.println(file1);
}else {
method(file1);
}
}
}
}
2.文件名称过滤器
/**
* 判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出此文件名称
* A:先获取所有的,然后遍历的时候,依次判断,如果满足条件就输出.
* B:获取的时候就已经是满足条件的,然后输出即可.
*
* 要想实现这个效果,就必须学习一个接口:文件名称过滤器
* public String[] list(FilenameFilter filter)
* public File[] listFiles(FilenameFilter filter)
*
* @author hucheng
*
*/
public class FileDemo2 {
public static void main(String[] args) {
// 封装e判断目录
File file = new File("f:\\");
// 获取该目录下所有文件或者文件夹的String数组
String[] strArray=file.list(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
//通过这个测试,我们就知道了,到底把这个文件夹或者文件夹的名称加不加到数组中,取决于这里的
//取决于这里的返回值是true还是false
// File file=new File(dir, name);
// boolean flag=file.isFile();
// boolean flag2=name.endsWith(".jpg");
//
// return flag && flag2;
return new File(dir, name).isFile() && name.endsWith(".jpg");
}
});
//遍历
for(String s:strArray){
System.out.println(s);
}
}
}