File类,练习。

递归:方法自己调用自己。

需求:从键盘输入接受一个文件夹路径,打印出该文件夹下所有的.java文件名。

分析:从键盘接收一个文件夹路径。

   1.如果录入的是不存在的,给予提示。

      2.如果录入的是文件路径,给予提示。

    3.如果录入的是文件夹路径,给予提示。

public static void main(String[] args){

    File dir = getDir();

    printJavaFile(dir);

  public static File getDir(){

    Scanner sc = new Scanner(System.in);

    syso("请输入一个文件夹路径");

    while(true){

      String line = sc.nextLine();   //将键盘录入的文件夹路径存储

      String dir = new File(line);      //封装成File对象

      if(dir.exists()){

        syso("您录入的文件夹路径不存在,请重新录入");

      }else if(dir.isFile()){

        syso(“您录入的是文件路径,请重新录入文件夹路径”);

      }else{

        return dir;

      }

    }

  }

    //获取文件夹路径下的所有.java文件

         1.返回值类型void

    2.参数列表File dir

  public static void printJavaFile(File dir){

1.获取到该文件夹路径下的所有问价和文件夹,存储在File数组中。

  File[] subFiles = dir.listFiles();

2.遍历数组,对每一个文件或者文件夹做判断。

  for(File SubFile : subFiles){

 3.如果是文件,并且后缀是.java的,就打印。 

    if(subFile.isFile() && subFile.getName().endWith(".java")){

      syso(subFile);

      }else if(subFile.isDirectory){              //4.如果是文件夹,就递归调用。

        printJavaFile(subFile);

      }  

    }

  }

}

猜你喜欢

转载自www.cnblogs.com/wangffeng293/p/13205359.html