java基础---->FilenameFilter之文件过滤
FilenameFilter用于对列表中文件名的过滤,今天我们就开始java中FilenameFilter的学习。好多年了,你一直在我的伤口中幽居,我放下过天地,却从未放下过你,我生命中的千山万水,任你一一告别。
java中FilenameFilter的使用
java文档对FilenameFilter的描述:
Instances of classes that implement this interface are used to filter filenames. These instances are used to filter directory listings in the list method of class File, and by the Abstract Window Toolkit's file dialog component.
我们通过一个案例,来加深对FilenameFilter的了解与使用,项目结构如下:
aaarticlea/png;base64,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" alt="" />
一、 定义一个实现FilenameFilter的类,用于对文件名的过滤
package com.huhx.file; import java.io.File;
import java.io.FilenameFilter;
import java.util.regex.Pattern;
/**
* @author huhx
*/
public class DirFilter implements FilenameFilter {
private Pattern pattern; public DirFilter(String regex) {
pattern = Pattern.compile(regex);
} @Override
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
}
二、 在DirList.java类中测试使用
package com.huhx.file; import java.io.File;
import java.util.Arrays;
/**
* @author huhx
*/
public class DirList { public static void main(String[] args) {
File filePath = new File("file");
String[] list = filePath.list(new DirFilter("E.*\\.java"));
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER); for (String dirName : list) {
System.out.println(dirName);
}
}
}
三、 得到结果如下:
EscapingDNs.java
External.java
FilenameFilter的分析
一、 我们看一下File类的list(FilenameFilter filter)方法,代码如下:
public String[] list(FilenameFilter filter) {
String names[] = list();
if ((names == null) || (filter == null)) {
return names;
}
List<String> v = new ArrayList<>();
for (int i = 0 ; i < names.length ; i++) {
if (filter.accept(this, names[i])) {
v.add(names[i]);
}
}
return v.toArray(new String[v.size()]);
}
调用list()方法得到文件夹下的所有文件名,然后遍历所有的文件名。通过FilenameFilter的accept方法进行过滤,将符合要求的文件名加入到列表中,最后返回
二、 File中有一个类似的方法listFiles(FileFilter filter)方法,我们看下代码:
public File[] listFiles(FilenameFilter filter) {
String ss[] = list();
if (ss == null) return null;
ArrayList<File> files = new ArrayList<>();
for (String s : ss)
if ((filter == null) || filter.accept(this, s))
files.add(new File(s, this));
return files.toArray(new File[files.size()]);
}
与上述的list方法很类似,只是返回的类型不一样。
友情链接
java基础---->FilenameFilter之文件过滤的更多相关文章
- Java基础之读文件——使用通道读取混合数据2(ReadPrimesMixedData2)
控制台程序,本例读取Java基础之写文件部分(PrimesToFile2)写入的Primes.txt. 方法二:设置一个任意容量的.大小合适的字节缓冲区并且使用来自文件的字节进行填充.然后整理出缓冲区 ...
- Java基础之读文件——使用通道读取混合数据1(ReadPrimesMixedData)
控制台程序,本例读取Java基础之写文件部分(PrimesToFile2)写入的Primes.txt. 方法一:可以在第一个读操作中读取字符串的长度,然后再将字符串和二进制素数值读入到文本中.这种方式 ...
- Java基础之读文件——使用通道读二进制数据(ReadPrimes)
控制台程序,本例读取Java基础之写文件部分(PrimesToFile)写入的primes.bin. import java.nio.file.*; import java.nio.*; import ...
- Java基础之读文件——从文件中读取文本(ReadAString)
控制台程序,使用通道从缓冲区获取数据,读取Java基础之写文件(BufferStateTrace)写入的charData.txt import java.nio.file.*; import java ...
- Java基础之读文件——使用缓冲读取器读取文件(ReaderInputFromFile)
控制台程序,本例读取Java基础之写文件部分(WriterOutputToFile)写入的Saying.txt. import java.io.*; import java.nio.file.*; i ...
- Java基础之读文件——使用输入流读取二进制文件(StreamInputFromFile)
控制台程序,读取Java基础之读文件部分(StreamOutputToFile)写入的50个fibonacci数字. import java.nio.file.*; import java.nio.* ...
- Java基础知识系列——文件操作
对文件进行操作在编程中比较少用,但是我最近有一个任务需要用到对文件操作. 对文件有如下操作形式: 1.创建新的文件(夹) File fileName = new File("C:/myfil ...
- Java基础之读文件——使用通道随机读写文件(RandomReadWrite)
控制台程序,使用通道随机读写primes_backup.bin文件. import static java.nio.file.StandardOpenOption.*; import java.nio ...
- Java基础之读文件——使用通道随机读取文件(RandomFileRead)
import java.nio.file.*; import java.nio.channels.FileChannel; import java.io.IOException; import jav ...
随机推荐
- ExtJs 通过分析源代码解决动态加载Controller的问题
通过分析源代码解决动态加载Controller的问题 最近在研究ExtJs(4.2.0)的MVC开发模式,具体Extjs的MVC如何使用这里不解释,具体参见ExtJs的官方文档.这里要解决的问题是如何 ...
- Idea创建sbt项目
这篇文章开始演示如何使用sbt新建项目. 1. 新建,选择Scala,SBT 填写项目名称,Scala版本号等信息. 单击完成后,后台会一直处于下载依赖文件的状态,等吧.. 最终后台运行完成后的完整目 ...
- 聊聊Python中的多进程和多线程
今天,想谈一下Python中的进程和线程. 最近在学习Django的时候,涉及到了多进程和多线程的知识点,所以想着一下把Python中的这块知识进行总结,所以系统地学习了一遍,将知识梳理如下. 1. ...
- [Django学习]分页
分页 Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据, ...
- Hbase 学习(一) hbase配置文件同步
最近在狂啃hadoop的书籍,这部<hbase:权威指南>就进入我的视野里面了,啃吧,因为是英文的书籍,有些个人理解不对的地方,欢迎各位拍砖. HDFS和Hbase配置同步 hbase的配 ...
- 关于BETA、RC、ALPHA、Release、GA等版本号的意义
关于BETA.RC.ALPHA.Release.GA等版本号的意义 转载 2016年06月19日 00:04:00 2049 0 1 . 最近由于工作需要经常要去SVN上拉开源项目的源码,对项目 ...
- 12款优秀jQuery Ajax分页插件和教程
在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的 ...
- 关于在Android中添加事件监听器的方法
一.匿名内部类 1.先找到那个控件(初始化) private Button bt1; //onCreate方法外 bt1 = (Button)findViewById(R.id.button1); ...
- TensorFlow基础笔记(11) conv2D函数
#链接:http://www.jianshu.com/p/a70c1d931395 import tensorflow as tf import tensorflow.contrib.slim as ...
- struts2中struts.xml和web.xml文件解析及工作原理
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp ...