A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© UZI 中级黑马   /  2016-10-23 18:02  /  1320 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test2 {

        /**
         * 从键盘录入一个文件夹路径, 要求打印隐藏文件并统计个数
         */
        public static void main(String[] args) {
                File file = getFile();
                getYin(file);
               
                ArrayList<File> list = getYin(file);
               
                for (File f : list) {
                        System.out.println(f);
                }
                System.out.println(list.size());
        }
       
        public static ArrayList<File> getYin(File file){
                ArrayList<File> list = new ArrayList<>();
               
                File[] files = file.listFiles();
               
                for (File fi : files) {
                       
                        if (fi != null) {
                                if (fi.isFile() && fi.isHidden()) {
                                        System.out.println(fi);
                                }else if (fi.isDirectory()) {
                                        getYin(fi);
                                }
                        }
                       
                }
                return list;
        }
       
        public static File getFile(){
                Scanner sc = new Scanner(System.in);
                System.out.println("输入一个文件夹路径");
               
                while (true) {
                        String s = sc.nextLine();
                        File file = new File(s);
                       
                        if (!file.exists()) {
                                System.out.println("您输入的文件夹不存在");
                        }else if (file.isFile()) {
                                System.out.println("您输入的是一个文件名");
                        }else {
                                return file;
                        }
                }
        }

}


310EB}O0LBFQ`YK(~R0{5{U.png (87.97 KB, 下载次数: 7)

310EB}O0LBFQ`YK(~R0{5{U.png

7 个回复

正序浏览
递归的弊端就是递归次数多了导致栈内存溢出,程序无法执行啊,你用递归算10的阶乘还行,你算一个30的阶乘绝对会出问题的,在操作系统里只给JVM里分配100多M大小
;
这话说的多专业?一看就是神级的,必须膜拜!
回复 使用道具 举报
UZI 发表于 2016-10-23 22:14
递归少了  做出来就没意思了 ...

递归的弊端就是递归次数多了导致栈内存溢出,程序无法执行啊,你用递归算10的阶乘还行,你算一个30的阶乘绝对会出问题的,在操作系统里只给JVM里分配100多M大小
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
UZI 中级黑马 2016-10-23 22:14:39
地板
奕明传媒 发表于 2016-10-23 22:09
递归次数太多了的原因,我昨天社招面试这个问题搞了大半天才发现,你找一个目录层级比较少的试一试
...

递归少了  做出来就没意思了 ...
回复 使用道具 举报
递归次数太多了的原因,我昨天社招面试这个问题搞了大半天才发现,你找一个目录层级比较少的试一试
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
UZI 中级黑马 2016-10-23 22:02:39
板凳
菜鸟V 发表于 2016-10-23 21:24
你的list返回并没有实际值吧!

看了一会发现是的,这样弄重复创建了,应该在外面建,然后传值进去
回复 使用道具 举报
看了看list确实没有什么用!
回复 使用道具 举报
你的list返回并没有实际值吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马