Java I/O 之File and FilenameFilter接口

来源:互联网 发布:透视变换算法 编辑:程序博客网 时间:2024/04/30 05:58

Java I/O 之File and FilenameFilter接口

1.File负责处理文件以及文件夹的相关信息。FilenameFilter为文件过滤器,负责过滤当前文件集中符合条件的信息。FilenameFilter为接口,需要实现其中的accept接口方法。

主程序代码

package demo01;import java.io.File;import java.util.regex.Pattern;import java.util.regex.PatternSyntaxException;public class JavaFileClass {public static void main(String[] args){File file=new File(".");String[] list=file.list();for(String s : list){System.out.println("01"+s);}File file01= new File("D:\\");String[] list01=file01.list();for(String s : list01){System.out.println("02"+s);}File file02 =new File("D:\\");FileFilter filter=new FileFilter(".txt");String[] list02=file02.list(filter);for(String s : list02){System.out.println("03"+s);}}}

FilenameFilter实现类

package demo01;import java.io.File;import java.io.FilenameFilter;import java.util.regex.Pattern;public class FileFilter implements FilenameFilter{private Pattern pattern;public FileFilter(String regex){pattern=Pattern.compile(regex);}@Overridepublic boolean accept(File dir, String name) {return pattern.matcher(name).find();}}

在实现过程中,采用了正则表达式,则测试程序时,发现matcher的matches方法和find的方法差别.

matches:尝试对整个目标字符展开匹配检测,即只有整个目标字符串完全匹配时才返回真值

 find:是当目标字符中包含指定过滤内容时,返回true




0 0