博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java_IO_File_综合运用:建立一个指定扩展名的文件的列表
阅读量:5225 次
发布时间:2019-06-14

本文共 3038 字,大约阅读时间需要 10 分钟。

1 package properties; 2  3 import java.io.BufferedWriter; 4 import java.io.File; 5 import java.io.FileWriter; 6 import java.io.FilenameFilter; 7 import java.io.IOException; 8 import java.util.ArrayList; 9 import java.util.List;10 11 import Filter.SuffixFilter;12 13 public class File2Text {14 15 /**16  * 获取指定目录下,指定扩展名的文件(包含子目录中的)17  * 这些文件的绝对路径写入到一个文本文件中。18  * 19  * 简单说,就是建立一个指定扩展名的文件的列表。 20  * 21  * 思路:22  * 1,必须进行深度遍历。23  * 2,要在遍历的过程中进行过滤。将符合条件的内容都存储到容器中。24  * 3,对容器中的内容进行遍历并将绝对路径写入到文件中。25  * @param args26  * @throws IOException 27  */28     29     public static void main(String[] args) throws IOException {30         File dir = new File("E:\\javaproject\\Studying");31         List
list = new ArrayList
();32 33 SuffixFilter SuffixFilter = new SuffixFilter(".txt");34 35 getFiles(dir,SuffixFilter,list);36 37 File destFile = new File(dir,"javalist.txt"); 38 write2File(list,destFile);39 40 }41 42 public static void getFiles(File dir,FilenameFilter filter,List
list) {43 File[] files = dir.listFiles();44 for(File file:files){45 if(file.isDirectory())46 getFiles(file,filter,list);47 else{48 //对遍历到的文件进行过滤器的过滤。将符合条件File对象,存储到List集合中。 49 if(filter.accept(dir,file.getName())){50 list.add(file);51 }52 }53 54 }55 56 }57 public static void write2File(List
list,File destFile)throws IOException{58 59 BufferedWriter bufw = null;60 try {61 bufw = new BufferedWriter(new FileWriter(destFile));62 for(File file : list){63 bufw.write(file.getAbsolutePath());64 bufw.newLine();65 bufw.flush();66 }67 68 69 } /*catch(IOException e){70 71 throw new RuntimeException("写入失败");72 }*/finally{73 if(bufw!=null)74 try {75 bufw.close();76 } catch (IOException e) {77 78 throw new RuntimeException("关闭失败");79 }80 }81 }82 83 }
1 package Filter; 2  3 import java.io.File; 4 import java.io.FilenameFilter; 5  6 public class SuffixFilter implements FilenameFilter { 7  8     private String suffix; 9     //重写构造方法,被调用时可直接传入过滤的文件类型。10     11     public SuffixFilter(String suffix) {12         super();13         this.suffix = suffix;14     }15 16     public boolean accept(File dir, String name) {17         return name.endsWith(suffix);   //返回suffix 类型文件18         //return name.contains(suffix); //返回包含文件名中包含suffix19     }20 21 }

 

转载于:https://www.cnblogs.com/wkai212/archive/2013/03/30/2991099.html

你可能感兴趣的文章
GIT笔记:将项目发布到码云
查看>>
JavaScript:学习笔记(7)——VAR、LET、CONST三种变量声明的区别
查看>>
JavaScript 鸭子模型
查看>>
SQL Server 如何查询表定义的列和索引信息
查看>>
GCD 之线程死锁
查看>>
NoSQL数据库常见分类
查看>>
一题多解 之 Bat
查看>>
Java 内部类
查看>>
{面试题7: 使用两个队列实现一个栈}
查看>>
【练习】使用事务和锁定语句
查看>>
centos7升级firefox的flash插件
查看>>
jmeter系列二(jmeter engine相关)
查看>>
一份超全超详细的 ADB 用法大全
查看>>
WebView 调试
查看>>
IB使用
查看>>
Apache Common-IO 使用
查看>>
apidoc
查看>>
关于 ++x 和 x++ 比较难的一个例子
查看>>
第三次作业 105032014021
查看>>
记录一些容易忘记的属性 -- UILabel
查看>>