java文件过滤器

在File类的 list()方法中可以接收一个 FilenameFilter 参数(Filter译:过滤),通过该参数可以只列出符合条件的文件。这里的FilenameFilter 接口 和 javax.swing.filechooser 包下的 FileFilter 抽象类的功能非常相似,可以把 FileFilter 当成 FilenameFilter 的实现类,(实际并不是它实现类)

  • FilenameFilter 接口里包含了一个 accept(File dir, String name)方法该方法将依次对指定 File 的所有子目录或者文件进行迭代;如果该方法返回true,则 list() 方法会列出该子目录或者文件。
  • boolean accept(File dir, String name)
  • 该方法测试指定文件是否包含在文件列表中。
  • dir - 找到该文件的目录。
  • name - 文件的名称。 (包括目录)
  • true 当该名称包含在文件列表中时; false否则。 (名称包含目录,和文件)
  • . 点代表当前根目录
public static void main(String[] args) {

		File file = new File(".");

		// 使用 Lambda 表达式(目标类型为 FilenameFilter)
		// 如果文件名以.java 结尾,或该文件是一个目录(文件夹)
		String d;
		String[] nameList = file.list((dir, name) -> name.endsWith(".java") 
		|| new File(name).isDirectory());
		for (String name : nameList) {
			System.out.println(name);
		}
	}
  • 先附上我当前根目录图片
    在这里插入图片描述
  • 对应结果:
.settings
bin
src
文件.java
目录.java

  • accept() 方法就是指定自己的规则
  • 我指定的是 只有是目录 或 (目录,文件) 以.java 为后缀都符合
  • 关于lambda表达式可点击参考 -《Lambda
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值