From 81b0a7d524e49293ade63fb5c89040b5f8f31b6b Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 9 Aug 2026 15:14:27 +0800 Subject: [PATCH] =?UTF-8?q?s-day08-=E8=BF=87=E6=BB=A4=E5=99=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=B9=8B=E5=89=8D=E7=9A=84=E7=BB=83=E4=B9=A0=E9=97=AE?= =?UTF-8?q?=E9=A2=98(lambda)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- s-day08/src/com/inmind/digui02/Test12.java | 43 +++++++++++++++++++++- 1 file changed, 41 insertions(+), 2 deletions(-) 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);