package cn.IO;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/*本实例获得f:\\day1里面的所有.class文件,把他们的路径保存到f:\\day1\\Test.txt
* 文件夹下面.并将文件路径改为f:\\filetest\\class.txt
* 思路:
* 1、对指定的目录进行递归
* 2、获取递归过程中的java文件路径
* 3、将这些路径存储到集合中
* 4、将集合中的数据写入到一个文件中
* 5、更改路径。
*
*
*
*
* */
public class GetfileTest {
public static void main(String[] args) {
File dir = new File("f:\\day1");
List<File> list = new ArrayList<File>();
fileToList(dir, list);
File outfile = new File(dir, "Test.txt");
writeToOutfile(list, outfile);
File f2 = new File("f:\\filetest\\java.txt");
boolean b=outfile.renameTo(f2);
System.out.println(b);
}
private static void writeToOutfile(List<File> list, File outfile) {
if (!outfile.getParentFile().exists()) {
outfile.mkdir();
}
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(outfile));
for (File file : list) {
bw.write(file.getAbsolutePath());
bw.newLine();
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (Exception e2) {
System.out.println("关闭程序失败");
}
}
}
}
private static void fileToList(File dir, List<File> list) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
fileToList(file, list);
} else {
if (file.getName().endsWith(".class")) {
list.add(file);
}
}
}
}
}
|
|