IO中File类FilenameFilter&FileFilter的使用

File类的基础知识:
1.构建File类对象(3种方式)
在这里插入图片描述

		File a=new File("E:\\java\\day22\\day22");
		System.out.println(a);
		File b=new File("E:\\java\\day22","day22");
		System.out.println(b);
		File c=new File("E:\\java\\day22");
		File d=new File(c,"day22");
		System.out.println(d);
结果:	E:\java\day22\day22
		E:\java\day22\day22
		E:\java\day22\day22

2.listFiles()方法介绍:获取一个目录中的所有文件或者目录中的文件夹
在这里插入图片描述

		File a=new File("E:\\java\\day22\\day22");
		String [] list=a.list();//获取的是目录下的当前的文件以及文件夹的名称。
		for(String k:list) {
			System.out.println(k);
		}
		System.out.println();
		
		File[] list2=a.listFiles();//获取目录下当前文件以及文件对象,只要拿到了文件对象
		for(File k:list2) {
			System.out.println(k.getName());//.getname()见文章末常用方法
			//如果不加getName结果前面会加上路径名E:\java\day22\day22\
		}
		System.out.println();
两个结果相同:	250.txt
				day22-(File)教案.doc
				day22-File.pptx
				day22_code
				day22_source
				day22_video
				day22作业&预习
				IO第一部分.xmind

FilenameFilter的使用:多用来过滤文件筛选需要的文件

public class test2 {
	public static void main(String[] args) {
		File a=new File("E:\\java\\day22\\day22");
		File[] b=a.listFiles(new myfilenamefilter());//获取指定扩展名的文件,由于要对所有文件进行扩展名筛选,因此调用方法需要传递过滤器
		for(File c:b) {
			System.out.println(c);
		}
	}
}
//自定义类继承 FilenameFilter接口,自己需要什么文件就怎么写过滤条件
class myfilenamefilter implements FilenameFilter{
	public boolean accept(File dir, String name) {
		return name.endsWith(".txt");
	}
}
结果:250.txt

FileFilter的使用:多用于过滤文件目录筛选需要的目录

public class test3 {
	public static void main(String[] args) {
		File a=new File("E:\\java\\day22\\day22");
		File[] b=a.listFiles(new myfilefilter());
		for(File k:b) {
			System.out.println(k.getName());
		}
	}
}
class myfilefilter implements FileFilter{
	public boolean accept(File path) {
		return path.isDirectory();
	}
}
结果:	day22_code
		day22_source
		day22_video
		day22作业&预习

File常见方法
一、获取文件信息类
在这里插入图片描述
代码演示:

		File a=new File("E:\\java\\day22\\day22");
		String abspath=a.getAbsolutePath();
		String path=a.getPath();
		String filename=a.getName();
		long size=a.length();
		System.out.println("abspath:"+abspath);
		System.out.println("path:"+path);
		System.out.println("fname:"+filename);
		System.out.println("size:"+size);
结果:
		abspath:E:\java\day22\day22
		path:E:\java\day22\day22
		fname:day22
		size:4096

二、文件和文件夹的创建删除
在这里插入图片描述

		File a=new File("E:\\java\\day22\\day22");
		File x=new File("E:\\java\\day22\\day22\\nice");
		File java=new File(a,"250.txt");
		boolean b1=java.createNewFile();//文件没有则创建返回ture,文件存在则不创建返回false
		System.out.println("b1:"+b1);
		boolean b2=java.exists();
		System.out.println("b2:"+b2);
		boolean x1=x.mkdir();
		System.out.println(x1);
		System.out.println(java.isFile());
		System.out.println(a.isDirectory());
结果:
b1:false//因为之前运行过一次已经创建了所以返回false
b2:true
true
true
true

文件夹里效果:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值