Files
javaSE260715/s-day08/src/com/inmind/digui02/Test12.java
T

71 lines
2.1 KiB
Java

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());
}
}
}
}
}