美文网首页
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