黑马程序员技术交流社区

标题: IO流递归 [打印本页]

作者: 张宇峰    时间: 2015-12-16 23:11
标题: IO流递归
         * 键盘录入一个文件夹路径,然后获取其中所有后缀名为。java的文件
       
        public static void main(String[] args) {
                File dir = print();
                printJavaFile(dir);

        }
        /*获取键盘录入的文件或文件夹路径
         * 1、返回值类型File
         * 2、不需要参数
         * */
        public static File print(){
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个路径");
                while(true){
                        String str = sc.nextLine();
                        File dir = new File(str);
                        if (!dir.exists()) {
                                System.out.println("您输入的文件夹路径不存在 ,请重新输入");
                        }else if(dir.isFile()){
                                System.out.println("您输入的文件路径,请重新输入");
                        }else{
                                return dir;
                        }
                }
        }
        /*获取文件夹路径下的所有.java文件
         * 1、返回值类型void
         * 2、不需要参数
         * */
        public static void printJavaFile(File dir){
                //获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
                File[] arr = dir.listFiles();//将这个路径下的文件文件夹存储到这个数组中
                //遍历这个数组做判断
                for (File file : arr) {
                        //如果是文件,并且后缀是.java的,就打印
                        if (file.isFile() && file.getName().endsWith(".java")) {
                                System.out.println(file);
                                //如果是文件夹,就递归调用
                        }else if(file.isDirectory()) {
                                printJavaFile(file);
                        }
                }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2