目标需求
将一个文件夹中所有文件夹以及所需文件的绝对路径写入到一个文件中
需求分析
- 因为是将一个文件夹中所有的内容写入到文档里面。所以应该有一个获取这些数据的容器。可以使用数组来存储。
- 因为存储的是指定的文件,应该有一个过滤器来进行过滤操作。
- 再将数组中的数据放入到缓冲区中,然后写入到指定文件中。
代码实现
将获取的数据存入数组中。
public static void getFile(File dir,FilenameFilter filer, List<File> list) {
File[] files = dir.listFiles();
for(File file:files) {
if(file.isDirectory()) { //判断是否为文件夹
getFile(dir, filer, list);
}else {
if(filer.accept(dir, file.getName())) { //将符合的文件进行存入
list.add(file);
}
}
}
}
将数组中数据写入到指定文件中
public static void writeToFile(List<File> list,File wfile) {
BufferedWriter bufw = null;
try {
bufw = new BufferedWriter(new FileWriter(wfile));
for(File file:list) {
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
} catch (IOException e) {
throw new RuntimeException("写入流开启失败");
}finally {
try {
bufw.close();
} catch (IOException e) {
throw new RuntimeException("写入流关闭失败");
}
}
}