Java listFiles查找指定类型的文件简单做法

在Java编程中,通常使用带参数的listFiles方法来查找特定类型的文件。传统做法是创建一个实现FilenameFilter或FileFilter接口的类。但为了简化流程,特别是进行简单测试时,可以直接用匿名内部类的方式创建接口实例。这样可以避免为过滤功能创建额外的类。文章介绍了如何通过FilenameFilter和FileFilter接口,实现快速查找非目录文件以及按文件大小过滤的技巧。
摘要由CSDN通过智能技术生成

在Java中获取指定类型的文件,可以用带参数的listFiles的来实现

在网上搜了一些方法,几乎都是新建一个实现FilenameFilter或者FileFilter的类,然后把它作为listFiles的参数

但是在写一些简单的测试代码的时候,我不想新建一个类,而是希望用更快的方法来实现文件的过滤

所以就可以这样写:

File filepath = new File("D:\\");
File[] files = filepath.listFiles(new FilenameFilter() {
	@Override
	public boolean accept(File file, String s) {
		//查找文件名以.jpg结尾的文件
		if (s.endsWith(".jpg")) {
			return true;
		}
		return false;
	}
});

这样直接new一个实现FilenameFilter接口的对象作为listFiles的参数,就不用再新建一个类

listFiles还有另外一个参数FileFilter,也同样可以实现过滤

File[] files = filepath.listFiles(new FileFilter() {
	@Override
	public boolean accept(File file) {
		//查找文件名以.jpg结尾的文件
		if (file.getName().endsWith(".jpg")) {
			return true;
		}
		return false;
	}
});


除此之外,FileFilter还有其他过滤文件的方式,比如

查找所有非文件夹文件:

File[] files = filepath.listFiles(new FileFilter() {
	@Override
	public boolean accept(File file) {
		//查找所有非文件夹文件
		if (!file.isDirectory()) {
			return true;
		}
		return false;
	}
});

查找指定大小的文件:

File[] files = filepath.listFiles(new FileFilter() {
	@Override
	public boolean accept(File file) {
		//查找大于1kb,小于2kb的文件
		long length = file.length();
		if (length > 1024 && length < 2048) {
			return true;
		}
		return false;
	}
});

个人感觉FileFilter比FilenameFilter更加强大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值