FileFilter过滤器的原理和使用和FileNameFilter过滤器的使用
FileFilter过滤器的原理和使用
package com.yang.Test.FileStudy;
import java.io.File;
/**
* 在File类中有两个和ListFiles重载的方法,方法的参数传递的就是过滤器
* File[] ListFiles(FileFilter filter)
* java.io.FileFilter接口:用于抽象路径名(File对象)的过滤器
* 作用:用来过滤文件(File对象)
* 抽象方法:用来过滤文件的方法
* boolean accept(File pathname) 测试指定抽象路径名是否应该包含某个路径名列表中
* 参数:File pathname:使用ListFiles方法遍历目录,得到每一个文件对象
* File[] ListFiles(FilenameFilter filter)
* java.io.FilenameFilter接口:实现此接口的类实例可以用于过滤文件名。
* 作用:用于过滤文件名称
* 抽象方法:用来过滤文件的方法
* boolean accept(File dir,String name)测试指定文件是否应该包含在某一文件列表中
* 参数:
* File dir:构造方法中传递的被遍历的目录
* String name:使用ListFiles方法遍历目录,过去每一个文件/文件夹的名称
* 注意:
* 两个过滤器接口是没有实现类的,需要我们自己写实现类,重写过滤器的方法,在方法中自己定义过滤的规则
*
*/
public class study01 {
public static void main(String[] args) {
new study01().getAllFile(new File("D:\\音乐"));
}
/**
* 定义一个方法,参数传递File类型的目录
* 方法中对目录进行遍历
* @param dir
*/
public void getAllFile(File dir){
File[] files = dir.listFiles(new FileFilterImpl());
for (File file : files) {
if (file.isDirectory()) {
getAllFile(file);
} else {
System.out.println(file);
}
}
}
}
package com.yang.Test.FileStudy;
import java.io.File;
import java.io.FileFilter;
import java.util.Locale;
/**
* 创建过滤器FileFilter的实现类,重写过滤方法accept,定义过滤规则
*/
public class FileFilterImpl implements FileFilter {
@Override
public boolean accept(File pathname) {
/**
* 过滤的规则:
* 在accept方法中,判断File对象是否是以.mp3结尾
* 是就返回true
* 不是就返回false
*/
return pathname.getName().toLowerCase().endsWith(".mp3");
}
}
FileNameFilter过滤器的使用
package com.yang.Test.FileStudy;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/**
* 在File类中有两个和ListFiles重载的方法,方法的参数传递的就是过滤器
* File[] ListFiles(FileFilter filter)
* java.io.FileFilter接口:用于抽象路径名(File对象)的过滤器
* 作用:用来过滤文件(File对象)
* 抽象方法:用来过滤文件的方法
* boolean accept(File pathname) 测试指定抽象路径名是否应该包含某个路径名列表中
* 参数:File pathname:使用ListFiles方法遍历目录,得到每一个文件对象
* File[] ListFiles(FilenameFilter filter)
* java.io.FilenameFilter接口:实现此接口的类实例可以用于过滤文件名。
* 作用:用于过滤文件名称
* 抽象方法:用来过滤文件的方法
* boolean accept(File dir,String name)测试指定文件是否应该包含在某一文件列表中
* 参数:
* File dir:构造方法中传递的被遍历的目录
* String name:使用ListFiles方法遍历目录,过去每一个文件/文件夹的名称
* 注意:
* 两个过滤器接口是没有实现类的,需要我们自己写实现类,重写过滤器的方法,在方法中自己定义过滤的规则
*
*/
public class study01 {
public static void main(String[] args) {
new study01().getAllFile(new File("D:\\音乐"));
}
/**
* 定义一个方法,参数传递File类型的目录
* 方法中对目录进行遍历
* @param dir
*/
public void getAllFile(File dir){
/* File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if (pathname.isDirectory()){
return true;
}
return pathname.getName().toLowerCase().endsWith(".mp3");
}
});*/
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return new File(dir,name).isFile() || name.toLowerCase().endsWith(".mp3");
}
});
for (File file : files) {
if (file.isDirectory()) {
getAllFile(file);
} else {
System.out.println(file);
}
}
}
}
FileFilter过滤器的原理和使用和FileNameFilter过滤器的使用的更多相关文章
- 综合案例_文件搜索和FileFilter过滤器的原理和使用
文件搜索 需求 : 遍历D:\aaa文件夹,及 aaa 文件夹的子文件夹并且只要.java结尾的文件 分析: 1.目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录 2.遍历目录时,获取的子文件 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_03 过滤器_1_FileFilter过滤器的原理和使用
FileFilter 需要先定义接口的实现类.并重写过滤的方法 使用 并没有起作用 过滤器的原理 缺少了a.java和b.java 如果是文件夹,就返回true,那么就会返回到Files[]数组中.然 ...
- FileNameFilter过滤器的使用和Lambda优化程序--IO概述(概念&分类)
FileNameFilter过滤器的使用和Lambda优化程序 public class Demo02Filter { public static void main(String[] args) { ...
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- python实现布隆过滤器及原理解析
python实现布隆过滤器及原理解析 布隆过滤器( BloomFilter )是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地 ...
- yii过滤器的原理和使用
过滤器官方页面:http://www.yiiframework.com/doc/guide/1.1/zh_cn/basics.controller 过滤器是一段代码,可被配置在控制器动作执行之前或之后 ...
- [原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 深入Struts2的过滤器FilterDispatcher--中文乱码及字符编码过滤器
引用 前几天在论坛上看到一篇帖子,是关于Struts2.0中文乱码的,楼主采用的是spring的字符编码过滤器(CharacterEncodingFilter)统一编码为GBK,前台提交表单数据到Ac ...
- Django框架之第五篇(模板层) --变量、过滤器、标签、自定义标签、过滤器,模板的继承、模板的注入、静态文件
模板层 模板层就是html页面,Django系统中的(template) 一.视图层给模板传值的两种方法 方式一:通过键值对的形式传参,指名道姓的传参 n = 'xxx'f = 'yyy'return ...
随机推荐
- CTF简介
最近在学习渗透测试,后来发现CTF很有趣,发现对学习有所帮助,于是找了几个网站,下面推荐几个我觉得不错的网站 https://www.ctfhub.com/#/index https://adworl ...
- 电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析)
电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析) 目录 电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析) 写在前面 正文 电机噪声 谐波的产生 什么 ...
- MAUI候选版本3发布啦
我们很高兴发布.NET 多平台应用程序UI (.NET MAUI) 候选版本3,这个版本包含一系列新的改进.与以前的候选版本一样,RC3 包含在"上线"支持政策中,这意味着Micr ...
- 组织:IEEE
电气和电子工程师协会(IEEE,全称是Institute of Electrical and Electronics Engineers)是一个美国的电子技术与信息科学工程师的协会,是世界上最大的非营 ...
- layui数据表格搜索
简单介绍 我是通过Servlet传递json给layui数据表格模块,实现遍历操作的,不过数据量大的话还是需要搜索功能的.这是我参考网上大佬代码写出的搜索功能. 实现原理 要实现搜索功能,肯定需要链接 ...
- [codeforces] 暑期训练之打卡题(三)
每个标题都做了题目原网址的超链接 Day21<Alphabetic Removals> 题意: 给定一个字符串,要求按照字典序按照出现的前后顺序删除 k 个字母 题解: 记录字符串中各个字 ...
- 每天一个 HTTP 状态码 205
205 Reset Content 205 Reset Content 表示服务器成功地处理了客户端的请求,要求客户端重置它发送请求时的文档视图.这个响应码跟 204 No Content 类似,也不 ...
- python基础数据类型1
python基础数据类型1 part1: ''' ''': 三个单引号用于换行的字符串 字符串可以相加(拼接)相乘(重复) 在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代 ...
- CabloyJS的微信API对接模块:当前支持微信公众号和微信小程序
Cabloy-微信是什么 Cabloy-微信是基于CabloyJS全栈业务开发框架开发的微信接口模块,当前整合了微信公众号和微信小程序的接口,达到开箱即用的使用效果.在Cabloy-微信的基础上,可以 ...
- python实现对简单的运算型验证码的识别【不使用OpenCV】
最近在写我们学校的教务系统的手机版,在前端用户执行绑定操作后,服务器将执行登录,但在登录过程中,教务系统中有个运算型的验证码,大致是这个样子的: 下面我们开始实现这个验证码的识别. 1.图片读取 从网 ...