IO获取指定目录及其目录下子目录
一、需求:获取指定目录下,指定扩展名的文件(包含子目录中的)
二、需要用到的方法
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获取指定目录及其目录下子目录的更多相关文章
- IO流-获取指定目录下文件夹和文件对象【File类】
一.运用File类实现获取指定目录下文件夹和文件对象 1.File类 2.方法: 获取文件绝对路径 :getAbsolutePath 案例: import java.io.File; /** * 获取 ...
- java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中
/** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. * * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件 ...
- c# 获取指定目录下的所有文件并显示在网页上
参考文献: FileInfo 的使用 https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ...
- 2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到F盘下任意目录
package cn.it.text; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...
- C++:获取指定目录下的所有文件
1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector&g ...
- C#中获取指定目录下所有目录的名称、全路径和创建日期
场景 指定一个路径,根据这个父级路径获取此目录下所有目录的名称.全路径.创建日期等信息. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众 ...
- <UnityTheGreat><001>获取指定目录下指定类型的所有文件的名称
#region Environment Windows 10 Unity 2019.4.16f1c1 LTS VSCode 1.52 https://github.com/MirzkisD1Ex0/U ...
- File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
文章目录 1.基本介绍 2.构造方法 3.常用的方法 4.代码实例 4.1 创建文件和目录(目录不存在) 4.1.1 代码 4.1.2 测试结果 4.2 测试目录存在的情况.直接写绝对的路径名 4.2 ...
- 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本
摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...
随机推荐
- C++之类成员的访问权限详解(一)
概念解析 众所周知,面向对象编程语言的特征之一就是封装,不同编程语言对于封装提供的实现有所不同,但原理大体上是相同的.C++提供了三种不同程度的访问权限来实现,主要是通过public.private. ...
- Linux内核学习总览
断断续续学习操作系统已经有大半年时间了,一直想系统地梳理一下. 正好借助<深入Linux内核架构> (Wolfgang Manuere 著,郭旭 译)汇总一下. 首先基础框架篇,Linux ...
- Ubuntu配置TFTP服务器
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂.开销不大的文件传输服务 ...
- 电源模块PCB设计
电源模块的PCB设计 电源电路是一个电子产品的重要组成部分,电源电路设计的好坏,直接牵连产品性能的好坏.我们电子产品的电源电路主要有线性电源和高频开关电源.从理论上讲,线性电源是用户需要多少电流,输入 ...
- SpringMVC的删除功能
Dao层 package net.roseindia.dao; import java.util.Date; import java.util.List; import net.roseindia.m ...
- Ubuntu16.04 搭建svn
1.安装SVN 安装前先更新一下 sudo apt-get update 接下来安装 sudo apt-get install subversion 2.创建SVN版本库 1.创建home下的svn文 ...
- github私有库购买信息
github私有库购买信息 一年84美元. 换算成人民币是:532元. 话说其他开发者都买了么?
- 【06】sass编译工具(弃)
[06]编译工具(弃) SASS转译工具 除了使用sass命令来转译SASS文件之外,还可以借助第三方工具完成,目前世面上较为流行的转译工具主要有: Compass.app Scout Codekit ...
- (转)php_curl模拟登录有验证码实例
三年来的第一篇博客,还记得那是一个夜深人静的夜晚, 独自一人坐在不到10平米的小屋里,指头迅速的敲打着键盘,这天真TMD热.BJ生活啊. 唉! 最近一直在参加一个论坛批量发帖的项目开发. 模拟登录,模 ...
- js清除非数字输入
function clearNoNum(obj) { obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符 ...