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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. /*
  2. 练习
  3. 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
  4. 建立一个java文件列表文件

  5. 思路:
  6. 1,对指定的目录进行递归
  7. 2,获取递归过程中所有的java文件的路径
  8. 3,将这些路径存储到集合中
  9. 4,将集合中的数据写入到一个文件中

  10. */
  11. import java.util.*;

  12. import java.io.*;
  13. class JavaFileList
  14. {
  15.         //当时运用map集合的想法是因为,这样可以把文件名和地址名形成一一对应关系,方便查找
  16.         public static HashMap<String,String> hs = new HashMap<String,String>();
  17.         public static void main(String[] args) throws IOException
  18.         {
  19.                 File dir = new File("D:\\黑马训练营");
  20.                 getJava(dir);
  21.                 Set<String> ks = hs.keySet();
  22.                 Iterator<String> it = ks.iterator();

  23.                 //定义一个字符流writer
  24.                 FileWriter fw = new FileWriter("java.path.txt");
  25.                 //需要提高效率,所以BufferedWriter
  26.                 BufferedWriter bufw = new BufferedWriter(fw);
  27.                 while (it.hasNext())
  28.                 {
  29.                         String name = it.next();
  30.                         String path = hs.get(name);
  31.                         System.out.println(name+"  -->||"+path);
  32.                         bufw.write(name);
  33.                         bufw.newLine();
  34.                         bufw.write("   -->"+path);//写入文件时很有层次感
  35.                         bufw.newLine();
  36.                 }
  37.                 bufw.close();

  38.                 System.out.println("Hello World!");
  39.         }
  40.         public static void getJava(File dir)
  41.         {
  42.                 File[] files = dir.listFiles();
  43.                 for (int x = 0;x < files.length ;x++ )
  44.                 {
  45.                         if(files[x].isDirectory())//如果是文件夹的话
  46.                                 getJava(files[x]);//递归

  47.                         else if ((files[x].toString()).endsWith(".java"))//如果不是文件夹并且是java文件的话
  48.                                 //把文件名和地址的键值对作为一个元素加入集合中
  49.                                 hs.put(files[x].getName(),files[x].getAbsolutePath());
  50.                         else
  51.                                 continue;
  52.                        
  53.                 }
  54.         }
  55. }
复制代码

1 个回复

倒序浏览
本帖最后由 polarfox17 于 2015-9-27 20:37 编辑

我觉得这一块儿毕老师讲的特复杂,自己做了一下,也能做出来,不过方法不太一样,大家瞅瞅看,如有错,请轻喷
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马