File 类基础解析3 文件过滤器优化
时间:2022-07-25
本文章向大家介绍File 类基础解析3 文件过滤器优化,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
File类基础解析3 文件过滤器优化
什么是文件过滤器?
java.io.FileFilter 是一个接口,是File的过滤器。 该接口的对象可以传递给File类的 listFiles(FileFilter) 作为参数, 接口中只有一个方法 boolean accept(File pathname) :测试pathname是否应该包含在当前File目录中,符合则返回true
简单的分析
- 接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。
- accept 方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回 false。保留规则: 1. 要么是.java文件。 2. 要么是目录,用于继续遍历。
- 通过过滤器的作用, listFiles(FileFilter) 返回的数组元素中,子文件对象都是符合条件的,可以直接打印
package File;
import java.io.File;
import java.io.FileFilter;
public class Main {
public static void main(String[] args) {
//要遍历的文件夹的根目录
String rootpath="D:\test";
File file = new File(rootpath);
printDir(file);
}
public static void printDir(File dir){
File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().endsWith(".png")||pathname.isDirectory();
}
});
for (File file : files) {
if (file.isDirectory()){
printDir(file);
}
else{
System.out.println("文件绝对路径:"+file.getAbsolutePath());
}
}
}
}
Lambda表达式简化
package File;
import java.io.File;
public class Main {
public static void main(String[] args) {
//要遍历的文件夹的根目录
String rootpath="D:\test";
File file = new File(rootpath);
printDir(file);
}
public static void printDir(File dir){
File[] files = dir.listFiles(pathname -> {
return pathname.getName().endsWith(".png")
||pathname.isDirectory();});
for (File file : files) {
if (file.isDirectory()){
printDir(file);
}
else{
System.out.println("文件绝对路径:"+file.getAbsolutePath());
}
}
}
}
以上就是过滤器的一些基础知识,如有错误请各位批评指正,喜欢我的文章可以点个赞收藏,
- Go语言的网络编程简介
- 一条关于swap争用的报警邮件分析(二)(r8笔记第4天)
- Golang泛型编程初体验
- 厚土Go学习笔记 | 14. switch 的条件写的有点灵活,不过风格还是go的一贯风格
- Go语言·我的性能我做主
- 47. 访问MySql数据库实现增删改查 | 厚土Go学习笔记
- system表空间不足的问题分析(二) (r8笔记第5天)
- golang基于redis lua封装的优先级去重队列
- python基础知识——内置数据结构(元组)
- python基础知识——控制语句
- python基础知识——基本语法
- 11g主库归档自动删除的小问题分析 (r8笔记第1天)
- JavaWeb02-CSS,JS(Java真正的全栈开发)
- 数据处理——One-Hot Encoding
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Java自动化测试(数据库断言 18)
- Java自动化测试(参数化 19)
- Python 基础(一):入门必备知识
- Mac安装软件提示 已损坏【已解决】
- 机器学习之sklearn基础教程!
- 2020最新版 maven for MAC 安装及配置
- jemter安装(win/mac)并快捷启动的方法
- nmap 详解版-指令使用方法大全【含安装】
- 常见6种WAF绕过和防护原理
- 2020-mac 安装jdk1.8
- AWVS acunetix_WVS13的基础使用
- 为啥PHP in_array(0,['a', 'b', 'c']) 返回为true?
- docker安装伏羲扫描器fuxi-scanner
- 基于深度学习的文本分类应用!
- 表驱动法