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(); } } } }