要点:
1. listFiles() 列出指定目录下的文件夹和文件
2. 如果是目录,则递归
3.FilenameFilter提供文件过滤功能,符合条件的文件加入到容器中
4.BufferWriter提供缓冲写功能
5.操作流,记得释放资源
package com.gc.file;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ListFile {
public static void main(String[] args) throws IOException {
//筛选出指定目录下的java文件
File dir = new File("d:/java/test");
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
};
List<File> fileList = new ArrayList<File>();
listJavaFile(dir,filter,fileList);
//将所有java文件路径写到文件中
File destFile = new File("d:\\resut.txt");
writeToFile(fileList, destFile);
}
private static List<File> listJavaFile(File dir, FilenameFilter filter, List<File> fileList) {
File[] files = dir.listFiles();
for(File file : files) {
if(file.isDirectory()) {
listJavaFile(file, filter, fileList);
} else {
if(filter.accept(dir, file.getName()))
fileList.add(file);
}
}
return fileList;
}
private static void writeToFile(List<File> fileList, File destFile) throws IOException {
BufferedWriter bufw = null;
try{
bufw = new BufferedWriter(new FileWriter(destFile));
for(File file : fileList) {
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
} finally {
if(bufw!=null)
bufw.close();
}
}
}