- /*
- 练习
- 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- 建立一个java文件列表文件
- 思路:
- 1,对指定的目录进行递归
- 2,获取递归过程中所有的java文件的路径
- 3,将这些路径存储到集合中
- 4,将集合中的数据写入到一个文件中
- */
- import java.util.*;
- import java.io.*;
- class JavaFileList
- {
- //当时运用map集合的想法是因为,这样可以把文件名和地址名形成一一对应关系,方便查找
- public static HashMap<String,String> hs = new HashMap<String,String>();
- public static void main(String[] args) throws IOException
- {
- File dir = new File("D:\\黑马训练营");
- getJava(dir);
- Set<String> ks = hs.keySet();
- Iterator<String> it = ks.iterator();
- //定义一个字符流writer
- FileWriter fw = new FileWriter("java.path.txt");
- //需要提高效率,所以BufferedWriter
- BufferedWriter bufw = new BufferedWriter(fw);
- while (it.hasNext())
- {
- String name = it.next();
- String path = hs.get(name);
- System.out.println(name+" -->||"+path);
- bufw.write(name);
- bufw.newLine();
- bufw.write(" -->"+path);//写入文件时很有层次感
- bufw.newLine();
- }
- bufw.close();
- System.out.println("Hello World!");
- }
- public static void getJava(File dir)
- {
- File[] files = dir.listFiles();
- for (int x = 0;x < files.length ;x++ )
- {
- if(files[x].isDirectory())//如果是文件夹的话
- getJava(files[x]);//递归
- else if ((files[x].toString()).endsWith(".java"))//如果不是文件夹并且是java文件的话
- //把文件名和地址的键值对作为一个元素加入集合中
- hs.put(files[x].getName(),files[x].getAbsolutePath());
- else
- continue;
-
- }
- }
- }
复制代码 |
|