Java 实例 - 打印目录结构
以下实例演示了使用 File 类的 file.getName() 和 file.listFiles() 方法来打印目录结构:
Main.java 文件
import java.io.File;
import java.io.IOException;
public class FileUtil {
public static void main(String[] a)throws IOException{
showDir(1, new File("d:\\Java"));
}
static void showDir(int indent, File file) throws IOException {
for (int i = 0; i < indent; i++)
System.out.print('-');
System.out.println(file.getName());
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++)
showDir(indent + 4, files[i]);
}
}
}
以上代码运行输出结果为:
-Java -----codes ---------string.txt ---------array.txt -----w3cschoolcc
Java 实例
头条号[IT荠荠菜]
qux***ong@qq.com
使用 java 8 lambda 表达式,打印目录结构:
public class PrintDirDemo { public static void main(String[] args) { printDir(1, new File("./")); } /** * 使用 java 8 lambda 表达式,打印目录结构 * @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()); if (file.isDirectory()) { Arrays.asList(file.listFiles()).forEach(file2 -> printDir(indent + 2, file2)); } } }头条号[IT荠荠菜]
qux***ong@qq.com
头条号[IT荠荠菜]
qux***ong@qq.com
使用 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荠荠菜]
qux***ong@qq.com