要想保存到文件中,只需如下这样重定向即可,前提是在调用函数以前设置
PrintStream printStream = new PrintStream(new FileOutputStream("D:\\Books\\目录结构.txt"));
System.setOut(printStream);
具体代码,采用递归实现,调用的时候 i 从0开始
/**
* 目录结构打印
* @param path 路径
* @param i 层级
*/
private void printDirectory(String path, int i){
boolean exits = Files.exists(Paths.get(path));
boolean isDirectory = Files.isDirectory(Paths.get(path));
if (exits && isDirectory) {
File parent = new File(path);
if (i == 0)
System.out.println(".|--" + parent.getName());
i++;
File[] files = parent.listFiles();
if (files != null) {
for (int i1 = 0; i1 < files.length; i1++) {
System.out.print("|");
for (int i2 = 0; i2 < i - 1; i2++) {
System.out.print("\t");
if (i >= 2)
System.out.print("|");
}
System.out.println("---" + files[i1].getName());
if (files[i1].isDirectory()) {
printDirectory(files[i1].getAbsolutePath(), i);
}
}
}
}
}
结果如下这般