递归搜索文件,并写入目的文件成列表

来源:互联网 发布:达内云笔记数据库 编辑:程序博客网 时间:2024/05/29 04:35

import java.util.*;

import java.io.*;

 

public class JavaFileList 

{

 

/**

 * 把指定目录下的java文件的绝对路径写入文件中,建立一个java文件列表

 * 步骤:

 * 1.对指定目录进行递归

 * 2.获取递归所有的java文件路径

 * 3.将这些路径储存到集合中

 * 4.把集合中的数据写入硬盘中

 */

public static void main(String[] args) 

{

File dir = new File("D:\\workspace");

List<File> list = new ArrayList();

filetoList(dir,list);

System.out.println(list.size());

File file = new File("F:\\java.txt");//写入目的文件

writeToFile(list,file.toString());

}

//递归指定路径下的所有java文件

public static void filetoList(File dir,List<File> list)

{

File [] files= dir.listFiles();//文件集合

for(File file:files)

{

if(file.isDirectory())//判断目录

{

filetoList(file,list);//是目录就递归

}else

{

if(file.getName().endsWith(".java"))//判断是java文件就添加进集合中

{

list.add(file);

}

}

}

}

//把list里的数据写入文件中

public static void writeToFile(List<File> list, String filePath)

{

BufferedWriter buffw=null;

try {

buffw=new BufferedWriter(new FileWriter(filePath));//创建写入文件缓冲区

for(File file:list)//遍历集合中的java文件并写入目标文件里

{

String strPath=file.getAbsolutePath();

buffw.write(strPath);

buffw.newLine();

buffw.flush();

}

catch (Exception e) {

throw new RuntimeException("写入文件失败!");

finally {

try {

if(buffw!=null)

buffw.close();

catch (Exception e2) {

throw new RuntimeException("写入流关闭失败!");

}

}

}

}

  


0 0
原创粉丝点击