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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package com.heima.test;

  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.util.Scanner;

  5. public class Test5 {

  6.         /**
  7.          * 需求:从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.java文件名
  8.          *
  9.          * 分析:
  10.          * 从键盘接收一个文件夹路径
  11.          * 1,如果录入的是不存在,给与提示
  12.          * 2,如果录入的是文件路径,给与提示
  13.          * 3,如果是文件夹路径,直接返回
  14.          *
  15.          * 打印出该文件夹下所有的.java文件名
  16.          * 1,获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
  17.          * 2,遍历数组,对每一个文件或文件夹做判断
  18.          * 3,如果是文件,并且后缀是.java的,就打印
  19.          * 4,如果是文件夹,就递归调用
  20.          */
  21.         public static void main(String[] args) {
  22.                 File dir = getDir();
  23.                 printJavaFile(dir);
  24.         }

  25.         /*
  26.          * 获取键盘录入的文件夹路径
  27.          * 1,返回值类型File
  28.          * 2,不需要有参数
  29.          */
  30.         public static File getDir() {
  31.                 Scanner sc = new Scanner(System.in);                                //创建键盘录入对象
  32.                 System.out.println("请输入一个文件夹路径");
  33.                 while(true) {
  34.                         String line = sc.nextLine();                                        //将键盘录入的文件夹路径存储
  35.                         File dir = new File(line);                                                //封装成File对象
  36.                         if(!dir.exists()) {
  37.                                 System.out.println("您录入的文件夹路径不存在,请重新录入");
  38.                         }else if(dir.isFile()) {
  39.                                 System.out.println("您录入的是文件路径,请重新录入文件夹路径");
  40.                         }else {
  41.                                 return dir;
  42.                         }
  43.                 }
  44.         }
  45.         /*
  46.          * 获取文件夹路径下的所.java文件
  47.          * 1,返回值类型 void
  48.          * 2,参数列表File dir
  49.          */
  50.         public static void printJavaFile(File dir) {
  51.                 //1,获取到该文件夹路径下的所有的文件和文件夹,存储在File数组中
  52.                 File[] subFiles = dir.listFiles();
  53.                 //2,遍历数组,对每一个文件或文件夹做判断
  54.                 for (File subFile : subFiles) {
  55.                         //3,如果是文件,并且后缀是.java的,就打印
  56.                         if(subFile.isFile() && subFile.getName().endsWith(".java")) {
  57.                                 System.out.println(subFile);
  58.                         //4,如果是文件夹,就递归调用
  59.                         }else if (subFile.isDirectory()){
  60.                                 printJavaFile(subFile);
  61.                         }
  62.                 }
  63.         }
  64. }
复制代码

8 个回复

正序浏览
就当复习了!!
回复 使用道具 举报
请问楼主,这个主题的代码格式怎么编辑的呢?
回复 使用道具 举报
看看 不错的
回复 使用道具 举报
学习到啦
回复 使用道具 举报
谢楼主分享啦,受教啦
回复 使用道具 举报
谢谢楼主分享,受教了!
回复 使用道具 举报
已看,在复习一次!
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马