listFiles(FileFilter filter) 的源码解析
来源:互联网 发布:地图汇制作软件 编辑:程序博客网 时间:2024/06/05 10:51
简单分析下File.listFiles(FileFilter filter)的内部实现
1.首先我们知道listFiles的作用是返回 File 所有的子文件然后可以传入一个FileFilter过滤器得到相关的过滤后的文件
下面是listFile的源码
public File[] listFiles(FilenameFilter filter) { String ss[] = list();<span style="white-space:pre"></span> //先用ss存放所有的子文件的名字 if (ss == null) return null;<span style="white-space:pre"></span> //如果没有子文件那么就返回null ArrayList<File> files = new ArrayList<>();//实例化一个容器来存放过滤后的子文件 for (String s : ss)<span style="white-space:pre"></span> //对子文件进行过滤和遍历 if ((filter == null) || filter.accept(this, s))//accept()传给其两个参数,父文件 和子文件的名字 files.add(new File(s, this)); //如果过滤器为空或者通过了过滤就把该子文件加入到容器里面 return files.toArray(new File[files.size()]);//把容器变成数组返回 }下面是 FileFilter的源码就是一个接口然后要自己实现accept()方法
public interface FilenameFilter {
/**
* Tests if a specified file should be included in a file list. * * @param dir the directory in which the file was found. * @param name the name of the file. * @return <code>true</code> if and only if the name should be * included in the file list; <code>false</code> otherwise. */ boolean accept(File dir, String name);}
accept实现方法accept(File dir,String name){
return new File(dir,name).isFile() && name.endsWith("png") ;//判断是文件然后以"png"结尾就可以了
}
1 0
- listFiles(FileFilter filter) 的源码解析
- java中File.listFiles(FileFilter) FileFilter的使用
- java.io.File.listFiles(FileFilter filter)方法实例
- listFiles(),如何实现FileFilter及其FilenameFilter接口,list()的使用
- listFiles(filenameFilter)方法的源码
- IO操作-listFiles的Filter和FilenameFilter的区别及list与listFiles区别
- File(2) listFiles 文件过滤(FileFilter) 父目录getParentFile
- java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)
- ListFiles
- FileFilter
- FileFilter
- FTPClient的listFiles()方法阻塞
- [nginx源码分析]nginx filter模块解析
- Spring-web源码解析之Filter-CharacterEncodingFilter
- Spring-web源码解析之Filter-OncePerRequestFilter:
- Spring-web源码解析之Filter-AbstractRequestLoggingFilter
- Spring-web源码解析之Filter-HiddenHttpMethodFilter
- Spring-web源码解析之Filter-OncePerRequestFilter:
- Googlehacking 信息收集
- openstack基础
- Ironic , Openstack Baremetal Hypervisor
- JavaScript 学习笔记-select
- 从一个OpenStack的失败案例看Ironic和Neutron组件的现状
- listFiles(FileFilter filter) 的源码解析
- org.apache.log4j.DailyRollingFileAppender输出不出日志原因分析
- 1010-J专题三
- 安卓权限
- mysql 用 @rownum := @rownum+1 实现 rownum 功能
- arm远程调试 gdb和gdbserver
- 技术之路最公平也最残酷的原因是:没有捷径,需要日积月累的积累,以及对技术持久的热情。
- 跑偏程序员自学cocos2d-x之四 XML的读写
- 杭电1075 What Are You Talking About