主函数
public static void main(String[] args) {
File f1 = new File("D:\\FA\\JAVAspace\\FightingLangOwner\\Demo\\src\\DemoFile");
getFileName(f1);
}
实现类
public static void getFileName(File f1){
方法①
简化前:
File[] arrFile = f1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".txt");
}
});
简化后:
File[] files = f1.listFiles((pathname) ->pathname.isDirectory()||pathname.getName().toLowerCase().endsWith(".txt"));
方法②
简化前:
File[] files = f1.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".txt") ;
/**将传递进来的信息封装成为一个绝对地址
*判断它是否为一个文件夹*/
}
});
简化后:
/**使用Lambda表达式优化匿名内部类(接口中只有一个抽象方法)*/
File[] files = f1.listFiles((File dir, String name)->{
return new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".txt") ;
});
File[] files = f1.listFiles((dir,name)->new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".txt"));
for (File file : files) {
if(file.isDirectory()){
getFileName(file);
}else{
if(file.toString().endsWith(".txt"))
System.out.println(file);
}
}
.
.
FileFilter用匿名内部类创建重写
File[] arrFile = f1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".txt");
如果是目录或者是结尾为.txt的文件返回true
}
});
简化后:
File[] files = f1.listFiles((pathname) ->pathname.isDirectory()||pathname.getName().toLowerCase().endsWith(".txt"));
.
.
FilenameFilter用匿名内部类创建重写
File[] files = f1.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".txt") ;
将传递进来的信息封装成为一个绝对地址
判断它是否为一个文件夹
}
});
简化后:
File[] files = f1.listFiles((dir,name)->new File(dir,name).isDirectory() || name.toLowerCase().endsWith(".txt"));