黑马程序员技术交流社区
标题:
目录下的所有java文件的绝对地址
[打印本页]
作者:
polarfox17
时间:
2015-9-27 20:34
标题:
目录下的所有java文件的绝对地址
/*
练习
将一个指定目录下的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;
}
}
}
复制代码
作者:
polarfox17
时间:
2015-9-27 20:36
本帖最后由 polarfox17 于 2015-9-27 20:37 编辑
我觉得这一块儿毕老师讲的特复杂,自己做了一下,也能做出来,不过方法不太一样,大家瞅瞅看,如有错,请轻喷
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2