递归(进阶)

递归遍历文件中的。txt文件

  //只要txt文件
    public static void main(String[] args) throws IOException {
        File file =new File("d:/Auser");
        getAllFile(file);//getAllFile:获取所有文件

    }

    /**
     * 定义一个方法,参数传递File类型的目录
     * 方法中对目录进行遍历
     * @param dir
     */
    public static void getAllFile(File dir){
        File[] files=dir.listFiles();
        for (File f :files){
            //对遍历得到的File对象f进行判断,是否是文件夹
            if (f.isDirectory()){
                //f是文件夹,这继续遍历这个文件夹
                //我们发现getAllFile方法就是传递文件夹,遍历文件夹得方法
                //所以直接调用getAllFile方法即可递归(自己调自己)
                getAllFile(f);
            }else {
                //f是文件夹,直接打印即可
                /**
                 * 只要.java结尾的文件
                 * 1.把File对象f,转为字符串对象
                 * d:\Auser\c.txt
                 */
//                String name =f.getName();//c.txt
               String path =f.getPath();//d:\Auser\c.txt
          path=path.toLowerCase();把字符串都转换为小写,并输出
//2调用String类中的方法endswith判断字符串是否是以.java结尾 boolean b =path.endsWith(".txt"); //3如果是.java结尾的文件,则输出 if (b){ System.out.println(f); } } } }


  public static void main(String[] args) throws IOException {
        File file =new File("d:/Auser");
        getAllFile(file);//getAllFile:获取所有文件
    }
    public static void getAllFile(File dir){
        File[] files=dir.listFiles();
        for (File f :files){
            if (f.isDirectory()){
                getAllFile(f);
            }else {
               String path =f.getPath();
                path=path.toLowerCase();
                boolean b =path.endsWith(".txt");
                if (b){
                    System.out.println(f);
                }
            }
        }
    }

 

 

 

链式规则

    public static void main(String[] args) throws IOException {
        File file =new File("d:/Auser");
        getAllFile(file);//getAllFile:获取所有文件
    }

    public static void getAllFile(File dir){
        File[] files=dir.listFiles();
        for (File f :files){
            if (f.isDirectory()){
                getAllFile(f);
            }else {
                if (f.getName().toLowerCase().endsWith(".txt")){
                    System.out.println(f);
                }
            }
        }
    }

 

posted @ 2021-01-23 10:24  谷先生  阅读(53)  评论(0)    收藏  举报