对一个文件夹的数据进行检索,首先需要获取整个文件夹,然后再写一个递归方法进行检索。
在方法中,先把当前文件夹转化成文件列表,再使用iter进行遍历,判断如果为文件,并且文件结尾为java,输出,如果不为文件,肯定为文件夹,那么将该文件夹递归进方法再次循环。
package Case;
import java.io.File;
public class Case4 {
public static void main(String[] args) {
File file = new File("D:\\Java培训日记\\javase");
print(file);
}
public static void print(File file) {
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.isFile()) {
if (file1.getName().endsWith("java")) {
System.out.println("文件名为:" + file1.getAbsolutePath());
}
} else {
print(file1);
}
}
}
}
运行可实现。
因为FileFilter
是只有一个方法的接口,因此可以用lambda表达式简写.
public static void print(File file) {
File[] files = file.listFiles(f -> {
return f.getName().endsWith("java") || f.isDirectory();
});
for (File file1 : files) {
if (file1.isFile()) {
System.out.println("文件名为:" + file1.getAbsolutePath());
} else {
print(file1);
}
}
喜欢的点赞,不喜欢的解散。