使用 java 8 lambda 表达式,打印目录结构(移除目录判断:file.isDirectory()):
import java.io.File;
import java.util.Optional;
import java.util.stream.Stream;
public class PrintDirDemo {
public static void main(String[] args) {
printDir(1, new File("./"));
}
/**
* * 1、使用 java 8 lambda 表达式,打印目录结构
* * 2、移除目录判断:file.isDirectory()
* * @param indent
* * @param file
* */
public static void printDir(int indent, File file) {
//打印缩进字符"-"
Stream.generate(() -> '-').limit(indent).forEach(System.out::print);
//打印目录或文件名称
System.out.println(file.getName());
//打印下级目录或文件名称
Stream.of(Optional.ofNullable(file.listFiles()).orElse(new File[]{})).forEach(file2 -> printDir(indent + 2, file2));
}
}
头条号[IT荠荠菜]
头条号[IT荠荠菜]
qux***ong@qq.com1年前 (2019-12-17)