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

  二、需要用到的方法

    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. 复制webp图片到word || 微信webp图片不能复制 || 如何复制webp到word

    用IE浏览器打开Alt+A 复制直接去word粘贴, 用IE浏览器打开Alt+A 复制直接去word粘贴 用IE浏览器打开Alt+A 复制直接去word粘贴 用IE浏览器打开Alt+A 复制直接去wo ...

  2. set容器几个关键函数

    set在OI中非常好用,归纳几种常见的功能qwq #include<iostream> #include<cstdio> #include<set> //set容器 ...

  3. typedef重复定义 和 error: ‘long long long’ is too long for GCC

    今天发现一个很有意思的编译问题,然后在Stack Overflow上也有看到类似的.就是出现了 long long long 类型错误提示 错误提示如下: /home/yejy/algorithm_a ...

  4. [POJ] 3539 Elevator

    http://poj.org/problem?id=3539 给定一个电梯,可以上升a,b,c层和回到1层,给定楼高h,求可达层数 lyd讲的同余类BFS,方法是先把三个量压成两个,即把h%a,因为对 ...

  5. Mysql 查询多个字段去重复

    今天需要统计信息,但是有过个重复的数据,需要去除,找了如下方法: SELECT *, COUNT(DISTINCT phone ) FROM apply_info GROUP BY phone

  6. PS学习笔记(01)

    [1]PS,文件-脚本-删除所有的空图层.   [2]设计师与美工的区别? 设计在于有思路了再去找素材, 美工在于有素材后再去设计 (思路是在大量的设计上,才累计出来的.)   [3]如何知道一张图片 ...

  7. 【Codeforces 1083A】The Fair Nut and the Best Path

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 我们最后要的是一条最长的路径. 这条路径的权值和是所有点的权值和-所有边的权值和且这个值最大. 显然如果我们在某一条边上的累计的权值和< ...

  8. 大数据学习——hive显示命令

    show databases; desc t_partition001; desc extended t_partition002; desc formatted t_partition002; !c ...

  9. sql模糊查询,解除绑定的单号

    --610007570320-610007571319 1000张 delete from (select t.* from (select t1.bill_code, t1.bind_code, t ...

  10. HDU 1078 dfs+dp

    题目大意: 在n*n的矩阵中,每个格子放置了一定数量的食物,一只老鼠每次水平或竖直最多移动k格,每次到的位置食物都要比前一次多,问最后一共能得到多少食物 这道题利用记忆化搜索做,利用nowstate不 ...