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脚本 ...
随机推荐
- BZOJ 1968_P1403 [AHOI2005]约数研究--p2260bzoj2956-模积和∑----信息学中的数论分块
第一部分 P1403 [AHOI2005]约数研究 题目描述 科学家们在Samuel星球上的探险得到了丰富的能源储备,这使得空间站中大型计算机“Samuel II”的长时间运算成为了可能.由于在去年一 ...
- 利用springboot创建多模块项目
本文旨在用最通俗的语言讲述最枯燥的基本知识 最近要对一个不大不小的项目进行重构,用spring觉得太过于繁琐,用cloud又有觉得过于庞大,维护的人手不够:权衡之下,最终选了springboot作为架 ...
- 夯实Java:从面向对象说起
作者:伯特出处:github.com/ruicbAndroid/LoulanPlan声明:本文出自伯特的<LoulanPlan>,转载务必注明作者及出处. 刚学习 Java 那会就接触了& ...
- Nginx 跨域
if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access- ...
- LeetCode02-两数相加
''' 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示 ...
- python常用函数 C
1. Counter(hashable) 直接使用统计可哈希元素每个元素的数量. 2. most_common:可以统计数量最多的n个元素. from collections import Count ...
- [MVC]Ajax辅助方法
在开始使用Ajax辅助方法前,必须在页面中载入jQuery以及jquery.unobtrusive-ajax.js文件才能正常执行. 为了让网站载入适当的JS函数库,必须先让Layout页面载入适当的 ...
- Python利用flask sqlalchemy实现分页效果
Flask-sqlalchemy是关于flask一个针对数据库管理的.文中我们采用一个关于员工显示例子. 首先,我们创建SQLALCHEMY对像db. from flask import Flask, ...
- metadata的使用以及简单的orm模式
使用sqllite3和metadata简单的封装了个简单的orm #!/usr/bim/python #-*-coding: utf-8 -*- import threading import sql ...
- 在mysql的操作界面中,如何清屏幕
1.快捷键:Ctrl+L2.通过执行SHELL命令: \! clear实际上 \! 用来执行操作系统的shell命令,不仅是clear,其他命令也可以.shell命令执行完成后,会返回mysql Us ...