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); } @Override public boolean accept(File dir, String name) { return pattern.matcher(name).find(); } }
在实现过程中,采用了正则表达式,则测试程序时,发现matcher的matches方法和find的方法差别.
matches:尝试对整个目标字符展开匹配检测,即只有整个目标字符串完全匹配时才返回真值
find:是当目标字符中包含指定过滤内容时,返回true
Java I/O 之File and FilenameFilter接口
最新推荐文章于 2023-08-01 21:40:06 发布