diff --git a/s-day08/src/com/inmind/digui02/Test12.java b/s-day08/src/com/inmind/digui02/Test12.java index 1adfdb1..acdfdff 100644 --- a/s-day08/src/com/inmind/digui02/Test12.java +++ b/s-day08/src/com/inmind/digui02/Test12.java @@ -1,6 +1,7 @@ package com.inmind.digui02; import java.io.File; +import java.io.FileFilter; /* 练习_打印指定目录下所有的txt文件 @@ -8,14 +9,52 @@ import java.io.File; public class Test12 { public static void main(String[] args) { File file = new File("D:\\io_test"); - getFiles(file); +// getFiles(file); +// getFilesByFilter(file); + lambdaFilesByFilter(file); } + public static void lambdaFilesByFilter(File file) { + if (file.isFile()) { + return;//文件就不用遍历 + } + File[] files = file.listFiles(f->f.isDirectory()||(f.isFile()&&f.getName().endsWith(".txt")));//在此处使用文件过滤器来优化代码,将子内容中文件夹或者txt文件保留即可 + for (File f : files) { + if (f.isDirectory()) { + getFiles(f); + } else { + System.out.println(f.getName()); + } + } + } + + + public static void getFilesByFilter(File file) { + if (file.isFile()) { + return;//文件就不用遍历 + } + File[] files = file.listFiles(new FileFilter() { + @Override + public boolean accept(File f) { + return f.isDirectory()||(f.isFile()&&f.getName().endsWith(".txt")); + } + });//在此处使用文件过滤器来优化代码,将子内容中文件夹或者txt文件保留即可 + for (File f : files) { + if (f.isDirectory()) { + getFiles(f); + } else { + System.out.println(f.getName()); + } + } + } + + + public static void getFiles(File file) { if (file.isFile()) { return;//文件就不用遍历 } - File[] files = file.listFiles(); + File[] files = file.listFiles();//在此处使用文件过滤器来优化代码,将子内容中文件夹或者txt文件保留即可 for (File f : files) { if (f.isDirectory()) { getFiles(f);