package com.inmind.digui02; import java.io.File; import java.io.FileFilter; /* 练习_打印指定目录下所有的txt文件 */ public class Test12 { public static void main(String[] args) { File file = new File("D:\\io_test"); // 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();//在此处使用文件过滤器来优化代码,将子内容中文件夹或者txt文件保留即可 for (File f : files) { if (f.isDirectory()) { getFiles(f); } else { //文件判断 String name = f.getName(); if (name.endsWith(".txt")) { System.out.println(f.getName()); } } } } }