首先获取指定目录下的所有文件目录,存入List集合中,然后创建文本文件将List遍历写入文本中保存。

1.主程序类

 public class Test {

 	/**
 	 * @param args
 	 */
 	public static void main(String[] args) {
 		// TODO Auto-generated method stub
 		//获取IO目录下的所有java文件
 		File dir = new File("H:\\workspace\\IO");

 		List<File> list = fileList(dir,".java");//路径列表,传入过滤器

 		//获取路径下的符合条件的文件后,写入一个txt中
 		File destFile = new File("H:\\workspace\\Testfile\\javaList.txt");
 		
             write2File(list,destFile);
 	}

2.过滤文件的方法,传入指定 路径参数 和文件 后缀参数, 返回文件List集合

     /**
 	 * 定义获取指定过滤器条件的集合
 	 * @param dir 路径
 	 * @param string 后缀.java
 	 * @return
 	 */
 	public static List<File> fileList(File dir, String suffix){
 		//1.定义集合
 		List<File> list = new ArrayList<File>();

 		//2.过滤器
 		FileFilter filter = new  FileFilterBySuffix(suffix);
 		getFileList(dir, list, filter);

 		return list;

 	}

3.过滤器方法和过滤器类

 	/**
 	 * 定义一个获取指定过滤器条件的集合
 	 * 多级目录下,传递list
 	 * @param dir 路径
 	 * @param list 文件集合
 	 * @param filter 过滤器
 	 */
 	public static void getFileList(File dir, List<File> list, FileFilter filter){
 		File[] files = dir.listFiles();

 		for(File file : files){
 			if(file.isDirectory()){
 				getFileList(file, list, filter);//递归
 			}else{
 				//过滤文件
 				if(filter.accept(file)){
 					list.add(file);//添加
 				}
 			}
 		}
 	}
 }
 
 public class FileFilterBySuffix implements FileFilter {

 	private String suffix;

 	public FileFilterBySuffix(String suffix) {
 		super();
 		this.suffix = suffix;
 	}

 	@Override
 	public boolean accept(File pathname) {
 		// TODO Auto-generated method stub
 		return pathname.getName().endsWith(suffix);
 	}

 }

4.写入list到文件方法

 	/**
 	 * 将list写入txt中
 	 * @param list 文件列表
 	 * @param destFile 存储对象java文件列表
 	 */
 	private static void write2File(List<File> list, File destFile) {
 		// TODO Auto-generated method stub
 		BufferedWriter bufw = null;

 		try {
 			//使用字符缓冲区对象BufferedWriter
 			bufw = new BufferedWriter(new FileWriter(destFile));

 			//遍历list,写入绝对路径
 			for(File file : list){
 				bufw.write(file.getAbsolutePath());//写入绝对路径
 				bufw.newLine();//换行
 				bufw.flush();  //刷新纪录
 			}

 		} catch (Exception e) {
 			// TODO: handle exception
 		} finally{
 			if(bufw != null){
 				try {
 					bufw.close();
 				} catch (IOException e) {
 					// TODO Auto-generated catch block
 					throw new RuntimeException();
 				}
 			}
 		}
 	}

Java I/O---获取文件目录并写入到文本的更多相关文章

  1. java调用shell获取返回值

    转自:http://blog.csdn.net/tengdazhang770960436/article/details/12014839 1.shell文件return.sh echo 1 echo ...

  2. (部署新java程序,程序报错,需copy的一个包)——java使用siger 获取服务器硬件信息

    mcat-siger.sh  查看是否安装siger rsync -aPuv /usr/lib64/libsigar-amd64-linux.so $i:/usr/lib64/ java使用siger ...

  3. java中将list、map对象写入文件

    链接地址:http://blog.sina.com.cn/s/blog_4a4f9fb50101p6jv.html     推荐:凤爪女瓜子男怪象该谁反思伦敦房价为什么持续暴涨 × wvqusrtg个 ...

  4. 在 Java 8 中获取日期

    前言 前面一篇文章写了<SimpleDateFormat 如何安全的使用?>, 里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Jav ...

  5. JAVA处理Excel表格数据并写入数据库

    package com.hncj.test; import java.io.FileInputStream; import java.sql.Connection; import java.sql.D ...

  6. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

  7. Java 网络爬虫获取网页源代码原理及实现

    Java 网络爬虫获取网页源代码原理及实现 1.网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL ...

  8. Java通过httpclient获取cookie模拟登录

    package Step1; import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Htt ...

  9. java中如何获取昨天的当前日期

    在java里,获取昨天的当前日期,可以采用calendar来做,也可以采用date来做:如下: 1.采用calendar来做: Calendar cal=Calendar.getInstance(); ...

随机推荐

  1. LINQ学习系列-----2.1 一个Linq语句

    Linq语句介绍 先上源码: 上述代码涵盖了Linq新特性: 代码解析: 针对本文中的几点特性,前面有文章进行阐述.

  2. java自动生成entity文件

    网上关于自动生成entity文件的代码很多,看了很多代码后,在先辈们的基础上再完善一些功能(指定多个表,全部表). 为了使用方便所以把两个类写在一个java文件中,所以大家可以直接拿这个java文件, ...

  3. 巧-微信公众号-操作返回键问题-angularjs开发 SPA

    在解决这个问题之前,一直处在很苦逼的状态,因为 现在绝大多数 前端模块都是 SPA 模式:所以由此而来出了许多的问题,当然我现在提的这个只是其中一个: 说一下解决方案: 1.技术栈 angularjs ...

  4. 51Nod 2006 飞行员配对(二分图最大匹配)

    链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=2006 思路: 二分匹配 注意n m的关系 代码: #include ...

  5. NYOJ 2357: 插塔憋憋乐 贪心

    2357: 插塔憋憋乐 时间限制: 1 Sec  内存限制: 128 MB 提交: 82  解决: 18 [提交][状态][讨论版] 题目描述 众所不知,LLM是一位红警3大佬,打的非常厉害,但是曾经 ...

  6. ThinkPHP 5 中AJAX跨域请求头设置方法

    最近用thinkphp做项目,在测试环境时,存在接口的测试问题.在tp官网也没能找到相关的解决方法.自已看了一下源码,有如下的解决方案. 在项目目录下面,创建common/behavior/CronR ...

  7. onblur

    HTML onblur 事件属性 HTML 事件属性 实例 当用户离开输入字段时对其进行验证: <input type="text" name="fname&quo ...

  8. 进程互斥(锁)------------------>一个坑

    进程互斥锁 引入: 进程之间数据不共享,但是共享同一套文件系统(如硬盘.键盘.cpu等),所以访问同一个文件,或同一个打印终端,是没有问题的,竞争带来的结果就是错乱,如何控制,就是加锁处理,即进程加锁 ...

  9. Python的Web应用框架--Django

    一:简介 python的web框架有很多,个人查了一下,有Django.Pylons. Tornado.Bottle和Flask等,其中使用人数最多的是Django,而我学习Django也是因为ope ...

  10. SQLMap简单尝试

    第一次完成了一个注入呢,虽然是恬不知耻的用sqlmap跑出来的 简单介绍注入时后台的数据等级,有助于后面的理解 ①可以类比成一个装着excel文件的文件夹,每一个excel文件就相当于一个数据库 ②库 ...