本帖最后由 心灵的微幸福 于 2014-6-7 12:11 编辑
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
/*
代码思路1.对指定路径进行递归
2.获取递归过程中所有.JAVA文件的路径
3.将这些路径存储到集合中
4 .将集合中的数据写入到一个文件中
*/
public class IOText {
public static void main(String[] args) throws IOException {
File file = new File("D:"+File.separator+"java文档"+File.separator+"毕向东java代码");
//file 指定的路径下还有多个文件夹
LinkedList<File>link = new LinkedList<File>();
getFileName(file,link);
printCollection(link);
}
public static void getFileName(File file,LinkedList<File>link){
File[] fileName=file.listFiles(new FilenameFilter(){
public boolean accept(File dir,String name){
return name.endsWith(".java");
}
});
for(File i:fileName){
if(i.isDirectory()){
getFileName(i,link);
}else{
link.add(i);
}
}
}
public static void printCollection(LinkedList<File>link) throws IOException{
BufferedWriter buf= new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\1.txt")));
for(File i:link){
String name=i.getAbsolutePath();
buf.write(name);
buf.newLine();
buf.flush();
}
buf.close();
}
}
这段代码中如果File对象中的路径下有多个文件夹,那么通过过滤器不会输出,这个怎么解释 |