一、需求:获取指定目录下,指定扩展名的文件(包含子目录中的)

  二、需要用到的方法

    1、FilenameFilter :返回抽象路径名的定义中表示此抽象路径名的目录中的文件的数组。

       filter.accept : 对遍历到的文件进行过滤器的过滤,将符合对象的File文件   

package keyboad;

import java.io.*;
import java.util.ArrayList;
import java.util.List; /**
* 需求:
* 获取指定目录下,指定扩展名的文件(包含子目录中的)
* 这些文件的绝对路径写入到一个文本文件中
*
* means:建立一个指定的扩展名的文件列表
*思路:
* 1、深度遍历
* 2、需要在遍历过程总进行过滤,将符合条件的内容储存到容器中
* 3、对容器中的内容进行遍历并将绝对路径写入到文件中
*
* Created by lcj on 2017/11/10.
*/
public class practiseDemo {
public static void main(String[] args) {
//指定一个文件目录
File dir = new File("D:\\Repository");
//过滤器,过滤后缀名为.jar
FilenameFilter filter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".jar");
}
};
List<File> list = new ArrayList<File>();
//执行getFiles方法,执行完将数据储存至list中
getFiles(dir , filter , list);
//将过滤完的文件保存至java.txt文件中
File destFile = new File(dir,"java.txt");
//执行wrinte2File方法
wrinte2File(list,destFile);
} /**
*对指定目录中的内容进行深度遍历,并按照指定过滤器,进行过滤
* 将过滤器后的内容存储到指定容器List中
* @param dir
* @param filter
* @param list
*/
//文件路径,FilenameFilter 过滤器文件名,将过滤掉的数据存储数组
public static void getFiles(File dir,FilenameFilter filter,List<File> list ) {
//listFiles 方法:返回抽象路径名的定义中表示此抽象路径名的目录中的文件的数组。
File[] files = dir.listFiles();
for (File file : files)///file 变量
{
if (file.isDirectory())
{
//如果File是目录,将进行递归
getFiles(file,filter,list);
}else {
//对遍历到的文件进行过滤器的过滤,将符合对象的File文件,存储至List集合中
if (filter.accept(dir,file.getName()))
{
list.add(file);
}
}
}
}
//什么文件写入到 写到那个文件(目的文件)
public static void wrinte2File(List<File> list,File destFile) //List<File> 字符流
{ BufferedWriter bufw = null;
try {
bufw = new BufferedWriter(new FileWriter(destFile));
for (File file :list)
{
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
}catch (Exception e)
{
throw new RuntimeException("关闭失败");
}
finally {
if (bufw !=null)
{
try {
bufw.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("关闭失败");
}
}
}
}
}

IO获取指定目录及其目录下子目录的更多相关文章

  1. IO流-获取指定目录下文件夹和文件对象【File类】

    一.运用File类实现获取指定目录下文件夹和文件对象 1.File类 2.方法: 获取文件绝对路径 :getAbsolutePath 案例: import java.io.File; /** * 获取 ...

  2. java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中

    /** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. *  * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件 ...

  3. c# 获取指定目录下的所有文件并显示在网页上

    参考文献: FileInfo 的使用  https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...

  4. 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录

    package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  5. C++:获取指定目录下的所有文件

    1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector&g ...

  6. C#中获取指定目录下所有目录的名称、全路径和创建日期

    场景 指定一个路径,根据这个父级路径获取此目录下所有目录的名称.全路径.创建日期等信息. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众 ...

  7. <UnityTheGreat><001>获取指定目录下指定类型的所有文件的名称

    #region Environment Windows 10 Unity 2019.4.16f1c1 LTS VSCode 1.52 https://github.com/MirzkisD1Ex0/U ...

  8. File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件

    文章目录 1.基本介绍 2.构造方法 3.常用的方法 4.代码实例 4.1 创建文件和目录(目录不存在) 4.1.1 代码 4.1.2 测试结果 4.2 测试目录存在的情况.直接写绝对的路径名 4.2 ...

  9. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

随机推荐

  1. 用python的Requests库模拟http请求

    一.先了解几个重要的http请求头或响应头信息 Request Headers: Host: 描述请求将被发送的目的地,包括,且仅仅包括域名和端口号. Origin: 说明请求从哪里发起的,包括,且仅 ...

  2. Python Socket详细介绍

    Socket 类型 套接字格式: socket(family,type[,protocal]) 使用给定的地址族.套接字类型.协议编号(默认为0)来创建套接字. socket类型 描述 socket. ...

  3. 8. Truncate undo表空间

    8. Truncate undo表空间 要Truncate Undo 表空间,必须为MySQL实例配置至少两个undo表空间(两个undo表空间可确保一个undo表空间保持活动状态,另一个处于脱机状态 ...

  4. 自定义shell脚本

    当脚本需要加入固定的内容时就可以直接使用此文件 1.在用户的家目录下创建.vimrc文件(root用户就在root目录下创建,其他用户就在其他用户家目录下创建这个隐藏文件) 2. 将以下代码写入此文件 ...

  5. CSS3---关于文本

    1.text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出. 2.但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定 ...

  6. 访问变量的每个字节内容(c语言)

    #include <stdio.h> #define fun(x) for(int fun_i = 0; fun_i < sizeof(x); fun_i++){printf(&qu ...

  7. JVM——内存管理和垃圾回收

    1.  何为GC 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/51892567 Java与C语言相比的一个优势是,可以通过自己的JV ...

  8. python 快排,堆排,归并

    #归并排序 def mergeSort(a,L,R) :     if(L>=R) :         return     mid=((L+R)>>1)     mergeSort ...

  9. 外星联络(bzoj 2251)

    Description 小 P 在看过电影<超时空接触>(Contact)之后被深深的打动,决心致力于寻找外星人的事业.于是,他每天晚上都爬在屋顶上试图用自己的收音机收听外星人发来的信息. ...

  10. 银河英雄传说(codevs 1540)

    题目描述 Description 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米 ...