Java I/O 之File and FilenameFilter接口

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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值