import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class TestDriver {
public static void main(String[] args) throws IOException {
File file = new File("E:\\PROGRAM\\atm");
List<File> fileLists = new ArrayList<File>();
FileFilter fileFilter = new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".java");
}
};
getAbsolutePath(file, fileLists, fileFilter);
BufferedWriter buff = new BufferedWriter(new FileWriter("oo.txt"));
if(!fileLists.isEmpty()){
for(File tempFile : fileLists){
buff.write(tempFile.getAbsolutePath());
buff.newLine();
}
}
buff.flush();
buff.close();
}
/**
* 获取指定目录下指定扩展名文件的绝对路径,存储到文本文件中
* @param file1 指定的目录
* @param fileLists 将找到的绝对路径存储 到list集合中
* @param fileFilter 后缀名过滤器
*/
public static void getAbsolutePath(File file, List<File> fileLists, FileFilter fileFilter){
//思路
//1.根据指定目录遍历它的所有文件和文件夹
//2.如果是文件夹则递归,如果是文件则进行后缀名的过滤
//3.将找到的文件的绝对路径存入fileLists集合
if(file != null){
File[] files = file.listFiles();
for(File f : files){
if(f.isDirectory()){
getAbsolutePath(f,fileLists,fileFilter);
}else if(f.isFile() && fileFilter.accept(f)){
fileLists.add(f);
}
}
}else{
throw new RuntimeException("指定目录为空!");
}
}
}