import java.io.File;
import java.io.FileFilter;
/**
*
* 在"D:\\new"目录下搜索以".java"(或".JAVA")结尾的文件
*
* */
public class FileSearch {
public static void main(String[] args) {
File file = new File("D:\\new");
//两个方法都可以实现,二选一
search1(file);
search2(file);
}
//通过递归的方法,搜索符合条件的文件名
private static void search1(File file) {
File[] files = file.listFiles();
assert files != null;
for (File file1 : files) {
if (file1.isFile()) {
if (file1.getName().toLowerCase().endsWith(".java")) {
System.out.println(file1);
}
} else {
search1(file1);
}
}
}
//先使用文件过滤器挑选出符合条件的文件名和文件夹(因为文件夹里面可能还有符合条件的文件名),再使用递归方法
private static void search2(File file) {
//Lambda表达式:当实现只含有一个抽象方法的接口的方法时,可以使用其进行简化,省略的还包括参数类型(有参数)、return({}和;)(当只有一条返回语句的时候)
File[] files = file.listFiles(
(pathname) -> pathname.getName().toLowerCase().endsWith(".java") || pathname.isDirectory()
);
assert files != null;
for (File file1 : files) {
if (file1.isDirectory()) {
search2(file1);
} else {
System.out.println(file1);
}
}
}
}
Java-File类利用递归实现文件搜索功能
最新推荐文章于 2021-11-10 14:24:29 发布