黑马程序员技术交流社区

标题: 从键盘输入接收一个文件夹路径,打印出该文件夹下所有的.... [打印本页]

作者: vvvvvc    时间: 2016-6-9 23:09
标题: 从键盘输入接收一个文件夹路径,打印出该文件夹下所有的....
  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. }
复制代码

作者: Fangjie    时间: 2016-6-10 07:14
谢谢分享!
作者: 孟小垚    时间: 2016-6-10 10:46
已看,在复习一次!
作者: gjtdxjd    时间: 2016-6-10 20:09
谢谢楼主分享,受教了!
作者: TCK8888    时间: 2016-6-10 22:04
谢楼主分享啦,受教啦
作者: 大龄男青年    时间: 2016-6-10 23:00
学习到啦
作者: 恐高的鸟    时间: 2016-6-11 00:28
看看 不错的
作者: liqi9006    时间: 2016-6-11 00:32
请问楼主,这个主题的代码格式怎么编辑的呢?
作者: jianhua0798    时间: 2016-6-11 00:36
就当复习了!!




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