java文件操作,如何筛选指定后缀名(扩展名)文件

今天遇到一个要求,找出某目录下,后缀名是xls的文件,在网上查找学习操作,但输入相关问题,答案甚少,不太全,于是输入关键字:FilenameFilter才找到一篇很对此题的答案,建议看一下,献上网址:https://blog.csdn.net/xiazdong/article/details/6928455 遗憾的是这篇文章代码部分没有注释,可能是大神觉得比较简单就没注释了,如果是初学者看起来还是有点懵,所有我觉得还可以再详细再全一点,比如还可以用文件型数组来存放文件名等。实践后分享来给大家,这段代码主要功能就是筛选后缀名为xls的文件(你可以替换成你需要的),请看代码,例子参考的是教材《基于工作任务的Java程序设计》清华大学出版社中的(不写出来怕被打。。。),请看代码,内涵详细注释

package FilelFormSchoolBooks;
import java.io.*;
//具体实现的类
public class ListFilesDemo {
	public static void main(String[] args) {
		File file = new File("D:"+File.separator+"2015");  //“File.separator”是分隔符
		System.out.println(file.getAbsolutePath());			//输出完整路径名
		NameFilter filter = new NameFilter("xls");		// 类NameFilter是扩展于FilenameFilter接口,创建筛选条件
		// NameFilter filter = new NameFilter(".xls");  //加个点也行
		/**
		 * 下一行代码是创建了一个files的文件数组,存储文件名,
		 * (filter)就是过滤条件(在上一行代码中已经明确是筛选后缀名为xls的文件)对file目录下的所有文件进行筛选。
		 * 并存入files文件数组中
		 * 在我推荐的博文中大神用的是字符数组存储的
		 */
		File[] files = file.listFiles(filter);			
		if(files != null)  //判断文件是否存在,如果不存在而强行输出,则会报NullPointerException空指针异常的错误
			for(File afile: files) {	//for each 循环输出文件名,不了解的可以搜一下,在集合处使用很多
				if(afile != null)
					System.out.println(afile);
			}
		}
	
}
//按指定扩展名进行过滤,定义一个类实现FilenameFilter接口
class NameFilter implements FilenameFilter{
	//私有域扩展名
	private String extent;
	//接收指定的扩展名
	public NameFilter(String extent) {
		this.extent = extent;
	}
	@Override
	public boolean accept(File dir, String name) {
		return name.endsWith(extent);
		//如果文件符合指定的扩展名则返回true,否则返回false
	}
}

目录2018中的文件
在这里插入图片描述
右边是运行结果截图

在这里插入图片描述

明显可以看出后缀为xls的文件被筛选出来了,进步使人快乐,好好学习,天天向上。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值