菜鸟教程 -- 学的不仅是技术,更是梦想!

Java 教程
(追記) (追記ここまで)

Java 实例 - 打印目录结构

Java 实例 Java 实例

以下实例演示了使用 File 类的 file.getName() 和 file.listFiles() 方法来打印目录结构:

Main.java 文件

importjava.io.File; importjava.io.IOException; publicclassFileUtil{publicstaticvoidmain(String[]a)throwsIOException{showDir(1, newFile("d:\\Java")); }staticvoidshowDir(intindent, Filefile)throwsIOException{for(inti = 0; i < indent; i++)System.out.print('-'); System.out.println(file.getName()); if(file.isDirectory()){File[]files = file.listFiles(); for(inti = 0; i < files.length; i++)showDir(indent + 4, files[i]); }}}

以上代码运行输出结果为:

-Java
-----codes
---------string.txt
---------array.txt
-----w3cschoolcc

Java 实例 Java 实例

AI 思考中...

2 篇笔记 写笔记

  1. #0

    头条号[IT荠荠菜]

    qux***[email protected]

    2

    使用 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***[email protected]

    7年前 (2019年12月16日)
  2. #0

    头条号[IT荠荠菜]

    qux***[email protected]

    3

    使用 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***[email protected]

    7年前 (2019年12月17日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /