package FileDemo; 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 FilePropertyTest { /**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException { File dir = new File("D:\\Java");
FilenameFilter filter = new FilenameFilter() { @Override
public boolean accept(File dir, String name) { return name.endsWith(".txt");
}
};
List<File> list = new ArrayList<File>();
getFiles(dir, filter, list);
File destFile = new File("D:\\destfile.txt");
write2File(list, destFile);
} public static void getFiles(File dir, FilenameFilter fileter,
List<File> list) {
File files[] = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
getFiles(file, fileter, list);
} else {
if (fileter.accept(dir, file.getName())) {
list.add(file);
}
}
}
} public static void write2File(List<File> list, File destFile) throws IOException {
BufferedWriter bufw = null;
try {
bufw = new BufferedWriter(new FileWriter(destFile));
for (File file : list) {
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
} catch (Exception e) {
throw new RuntimeException("出现异常,写入失败");
} finally {
if(bufw!=null){
try {
bufw.close(); } catch (Exception e2) { throw new RuntimeException("关闭失败");
}
}
}
} }