import java.util.*;
import java.io.*;
//需求:1.将指定目录下的java文件的绝对的路径名存入一个集合中。
//2.再将集合中的文件目录取出存入一个指定的文件中。
public class Glc
{
public static void main(String[] args)throws IOException
{
File fy = new File("D:\\Dem");
List<File> list = new ArrayList<File>();
di(fy,list);
System.out.println(list.size());
File f = new File(fy,"javalist.txt");
xie(f.toString(),list);
}
public static void di(File fy,List<File> list)
{
File[] fi = fy.listFiles();
for(File fiu:fi)
{
if(fiu.isDirectory())
di(fiu,list);
else
{
if(fiu.getName().endsWith(".java"))
list.add(fiu);
}
}
}
public static void xie(String javalist,List<File> list)throws IOException
{
BufferedWriter buf = null;
try
{
buf = new BufferedWriter(new FileWriter(javalist));
for(File f:list)//为什么这个高级for循环用的循环条件是File对象????这个函数中传入的参数不是集合对象(List<File> list)吗.
//File对象不用从集合中取出就可以直接用吗???
{
String s = f.getAbsolutePath();
buf.write(s);
buf.newLine();
buf.flush();
}
}
catch(IOException e)
{
throw e;
}
finally
{
try
{
if(buf!= null)
buf.close();
}
catch(IOException e)
{
throw e;
}
}
}
}
|