JAVA IO
2016-07-27 18:18
471 查看
package cn.itcast.io.p3.test; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; /* * * 获取指定目录下,指定扩展名的文件(包含子目录中的) * 这些文件的绝对路径写入到一个文本文件中。 * * 简单说,就是建立一个指定扩展名的文件的列表。 * * 思路: * 1,必须进行深度遍历。 * 2,要在遍历的过程中进行过滤。将符合条件的内容都存储到容器中。 * 3,对容器中的内容进行遍历并将绝对路径写入到文件中。 * * */ public class Test { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { File dir = new File("e:\\java0331"); FilenameFilter filter = new FilenameFilter(){ @Override public boolean accept(File dir, String name) { return name.endsWith(".java"); } }; List<File> list = new ArrayList<File>(); getFiles(dir,filter,list); File destFile = new File(dir,"javalist.txt"); write2File(list,destFile); } /** * 对指定目录中的内容进行深度遍历,并按照指定过滤器,进行过滤, * 将过滤后的内容存储到指定容器List中。 * @param dir * @param filter * @param list */ public static void getFiles(File dir,FilenameFilter filter,List<File> list){ File[] files = dir.listFiles(); for(File file : files){ if(file.isDirectory()){ //递归啦! getFiles(file,filter,list); }else{ //对遍历到的文件进行过滤器的过滤。将符合条件File对象,存储到List集合中。 if(filter.accept(dir, file.getName())){ list.add(file); } } } } public static void write2File(List<File> list,File destFile)throws IOException{ BufferedWriter bufw = null; try { bufw = new BufferedWriter(new FileWriter(destFile)); for(File file : list){ bufw.write(file.getAbsolutePath()); bufw.newLine(); bufw.flush(); } } /*catch(IOException e){ throw new RuntimeException("写入失败"); }*/finally{ if(bufw!=null) try { bufw.close(); } catch (IOException e) { throw new RuntimeException("关闭失败"); } } } }JAVA IO 学习案例
相关文章推荐
- Ant自动编译Java project时无法找到rt.jar的处理方法
- java 和c#泛型
- 为什么java的构造方法中this()或者super()要放在第一行
- Java 拷贝文件夹
- 最新spring 4 框架和 security相关包下载
- java语言基础入门——内部类的介绍
- spring 配置触发器
- Java高级-线程同步lock与unlock使用
- Java的4种单例模式
- Spring-13:泛型依赖注入(Spring4.X新特性)
- Java中vector的使用详解
- spring事务的传播特性(7种)
- Struts2学习(四)OGNL标签介绍
- Spring 使用注解方式进行事务管理
- Java用包代替了命名空间
- java Excel表格生成工具类
- java.lang.IllegalStateException: beginBroadcast() called while already in a broadcast
- 学习java的一些思维!
- 学习java的一些技巧!
- java equals()方法的写法