(IO)列出目录下所有的java文件
要点:
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() {@Overridepublic 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();}}}
?
?
?
?
?