package iofile;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
//将制定目录下的java文件的绝对路径 存储到一个文件中 建立java文件列表
/*
* 思路 首先确定一个 文件夹 需要用到递归 获取所有java文件的对象
* 存储进集合
* 把路径信息 通过输出流存储到一个文件中去
*
* 输出流 是纯文本 Writer 设备 硬盘上的一个文件 FileWriter
*
*
*
*
*
*/
public class JavaFileList
{
public static void main(String args[]) throws IOException
{
File dir=new File("D:\\Workspace");//建立路径对象
shuRu(dir);//调用写入功能
}
public static void getJavaInf(File dir,List<File> list) throws IOException//获取所有java文件对象
{
File[] files=dir.listFiles();
for(int x=0;x<files.length;x++)
{
if(files[x].isDirectory())
getJavaInf(files[x],list);
else
if(files[x].getName().endsWith(".java"))
list.add(files[x]);
}
}
public static void shuRu(File dir) throws IOException
{
List<File> list=new ArrayList<File>();//存储java File对象的集合
Collections.sort(list,new MyComp()); // 排序 为什么这个排序没有用???
getJavaInf(dir,list);
BufferedWriter bw=new BufferedWriter(new FileWriter("D:\\java.txt"));//建立一个文件 存储信息
for(File f:list)//高级for 遍历
{
bw.write(f.getName()+"::"+f.getAbsolutePath());//写入信息
bw.newLine();//换行
bw.flush();//刷新
}
bw.close();
}
}
class MyComp implements Comparator<File>//排序比较器
{
public int compare(File f1,File f2)
{
return f1.getName().compareTo(f2.getName());//根据文件名字进行排序
}
}
|