71 lines
2.1 KiB
Java
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());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|