package cn.itcast.iotest.demo;
import java.util.ArrayList;
import java.util.List;
import java.io.BufferedWriter;
/**
* 获取指定目录下,指定扩展名的文件(包含子目录)
* 把这些文件的绝对路径存储到指定的文件中去
*
* 简单说:就是建立一个指定扩展名的文件的列表
*
* 思路:
* 1、深度遍历目录
* 2、遍历时进行过滤,并把过滤后的文件写入到容器中去
* 3、遍历容器中的文件,并获取文件的绝对路径写入到文件中
*
* */
import java.io.File;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
public class TestIoDemo {
public static void main(String[] args) {
File dir=new File("e:\\java");
FilenameFilter filter=new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
};
List<File>list=new ArrayList<File>();
getfile(dir, filter, list);
File destile=new File(dir,"e:\\java");
outfile(list, destile);
}
public static void getfile(File dir,FilenameFilter filter,List<File>list) {
File[]files=dir.listFiles();
for(File file:files) {
if(file.isDirectory())
getfile(file, filter, list);
else {
if(filter.accept(dir, file.getName()))
list.add(file);
}
}
}
public static void outfile(List<File>list,File destile){
BufferedWriter buf=null;
try {
buf=new BufferedWriter(new FileWriter(destile));
for(File file:list) {
buf.write(file.getAbsolutePath());
buf.newLine();
buf.flush();
}
} catch (IOException e) {
throw new RuntimeException("写入异常");
}finally {
if(buf!=null)
try {
buf.close();
} catch (IOException e) {
throw new RuntimeException("关闭异常");
}
}
}
}
java IO_Test建立一个指定扩展名的文件的列表
猜你喜欢
转载自blog.csdn.net/TDOA1024/article/details/82624398
今日推荐
周排行