/*
思路:
1.对指定目录进行递归
2.获得所有后缀名是.java的文件
3.创建集合将所有.java文件对象存储进去
4.遍历集合里的file对象,获得绝对路径,写到文件里*/
import java.io.*;
import java.util.*;
class GetFileList
{
public static void main(String[] args)
{
File dir=new File("E:\\javacode\\javacode");
List<File> list=new ArrayList<File>();
getFileToList(dir,list);
File file=new File(dir,"javacode.txt");
WriteToFile(list,file.toString());
}
//得到File对象,将file对象存入list集合
public static void getFileToList(File dir,List<File> list)
{
//得到所有File对象
File[] files=dir.listFiles();
//遍历File对象
for(File file:files)
{
if(file.isDirectory())
getFileToList(file,list);
else
{
if(file.getName().endsWith(".java"))
list.add(file);
}
}
}
//遍历list集合,将文件路径存入文件里
public static void WriteToFile(List<File> list,String FileName)
{
BufferedWriter bufw=null;
try
{
bufw=new BufferedWriter(new FileWriter(FileName));
for(File file:list)
{
String path=file.getAbsolutePath();
bufw.write(path);
bufw.newLine();
bufw.flush();
}
}
catch (IOException e)
{
throw new RuntimeException("路径写入失败!");
}
finally
{
if(bufw!=null)
try
{
bufw.close();
}
catch (IOException e)
{
throw new RuntimeException("关闭写入流失败");
}
}
}
}