美文网首页
2021-09-19 IO流(列出目录下所有内容-递归)

2021-09-19 IO流(列出目录下所有内容-递归)

作者: Denholm | 来源:发表于2021-09-30 11:39 被阅读0次

    列出指定目录下文件或者文件夹,包含子目录中的内容,即是列出指定目录下所有内容

    因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可,在列出过程中出现的还是目录的话,还可以再次调用本功能,即函数自身调用自身,这种表现形式,或者编程手法,称为递归。

    clipboard.png

    递归注意事项:
    1.限定条件
    2.要注意递归的次数,尽量避免内存溢出(java.lang.StackOverflowError)

    import java.io.File;
    
    // 递归
    public class Recursion {
    
        public static void main(String[] args) {
            File dir = new File("E:\\Book");
            showDir(dir);
        }
    
        public static void showDir(File dir) {
            System.out.println(dir);
            File[] files = dir.listFiles();
            for (int i = 0; i < files.length; i++) {
                if (files[i].isDirectory()) {
                    showDir(files[i]);
                } else {
                    System.out.println(files[i]);
                }
            }
        }
    
    }
    
    clipboard.png
    // 递归
    public class Recursion2 {
    
        public static void main(String[] args) {
            System.out.println(getSum(6));
        }
    
        public static int getSum(int n) {
            if (n == 1) {
    //            return n;
                return 1;
            }
            return n + getSum(n - 1);
        }
    
    }
    
    clipboard.png

    相关文章

      网友评论

          本文标题:2021-09-19 IO流(列出目录下所有内容-递归)

          本文链接:https://www.haomeiwen.com/subject/pvpugltx.html