import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Test_02 {
public static void main(String[] args) {
/*
* 练习2
* 将一个指定目录下的所有java 文件 的绝对路径
* 存储到一个文本文件中 建立一个java 文件列表文件
* */
File file = new File("d:\\workspace_BJ\\day18");
List<File> list = new ArrayList<>();
fileToList(file,list); //递归获取路径下所有的.java文件 并将其存入 list集合中
writeToFile(list,"javaList.txt");
System.out.println("success!!");
}
public static void fileToList(File file,List<File> list){
File[] files = file.listFiles();
for(File fs : files){
if(fs.isDirectory()){
fileToList(fs,list); //递归
}else{
if(fs.getName().endsWith(".java")){
list.add(fs);//如果文件名 是 .java结尾 就将他加入集合中
}
}
}
}
public static void writeToFile(List<File> list,String str){
BufferedWriter bw = null;
try{
bw = new BufferedWriter(new FileWriter(str));
for(File f : list){ //遍历集合 获取 File对象
String path = f.getAbsolutePath(); //通过 方法获取File对象的绝对路径
bw.write(path); //写出到流缓冲区中
bw.newLine(); //换行
bw.flush();//刷新字符流缓冲区 将数据存入文件中
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(bw!=null)
bw.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
涉及到文件列表的, 并要将文件列表记录到txt文件中的, 可以借助集合进行操作