package string.itcastio;
import java.util.*;
import java.io.*;
/*
* 练习
* 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
* 建立一个java文件列表文件
* 思路
* 1,对指定文件目录经行递归
* 2,获取递归过程中所有文件的路径
* 3,将这些路径存储到集合中
* 4,将集合中的数据写入到一个文件中
*
*/
public class JavaFileList {
public static void main(String[] args) {
File file = new File("F:\\javaweb");
List<File> files = new ArrayList<File>();
fileToList(file, files);
fileTotxt(files);
}
/**
* 获取目录下的所有文件
* @param file
* @param files
*/
public static void fileToList(File file, List<File> files) {
File[] files2 = file.listFiles();
for (File f : files2) {
if (f.isDirectory()) {
fileToList(f, files);
}
files.add(f);
}
}
/**
* 将文件集合写入到指定目录下的txt文件
* @param files
*/
public static void fileTotxt(List<File> files) {
FileWriter fw = null;
BufferedWriter bsw = null;
try {
fw = new FileWriter("F:\\javafilelist.txt");
bsw = new BufferedWriter(fw);
for (File f : files) {
String line = f.getAbsolutePath();
bsw.write(line);
bsw.newLine();
bsw.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bsw != null)
bsw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}