30、IO流——File类

定义

文件和目录路径名(文件夹)的抽象表示形式

构造方法

File(String pathname)
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例
pathname:File对象的全路径(包含文件全称)

File(String parent, String child)
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例
parent:File对象的全路径(不包含文件全称):String对象
child:文件全称

File(File parent, String child)
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例
parent:File对象的全路径(不包含文件全称):File对象
child:文件全称

成员方法

创建方法
public boolean createNewFile() throws IOException
创建文件
只有文件全名的话,在当前项目的根目录下创建
有全路径的(包括文件全名)话的话,在制定目录下创建
有全路径的(包括文件全名)话的话,路径不存在的话
异常:java.io.IOException:系统找不到指定的路径

public boolean mkdir()只能创建单个目录
创建此抽象路径名指定的目录

public boolean mkdirs()创建多级目录
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
注意,此操作失败时也可能已经成功地创建了一部分必需的父目录
注意点:是要创建文件还是文件夹,多注意调用方法

修改方法
public boolean delete()删除此抽象路径名表示的文件或目录
如果此路径名表示一个目录,则该目录必须为空才能删除,不进回收站,需要删除的文件夹,必须该文件夹下无任何内容(空文件夹也不可以),才可删除

public boolean renameTo(File dest)重新命名此抽象路径名表示的文件
路径名相同的话:直接修改文件名
路径名不相同的话:剪切原文件,修改名字后放到指定的路径下

判断功能
public boolean isDirectory()测试此抽象路径名表示的文件是否是一个文件夹

public boolean isFile()测试此抽象路径名表示的文件是否是一个标准文件

public boolean exists()测试此抽象路径名表示的文件或目录是否存在

public boolean canRead()测试应用程序是否可以读取此抽象路径名表示的文件

public boolean canWrite()测试应用程序是否可以修改此抽象路径名表示的文件

public boolean isHidden()测试此抽象路径名指定的文件是否是一个隐藏文件

获取功能
public String getAbsolutePath()获取绝对路径
返回此抽象路径名的绝对路径名字符串

public String getPath()获取相对路径
将此抽象路径名转换为一个路径名字符串,file是相对路径才能返回到相对路径地址,否则是绝对路径
所得字符串使用默认名称分隔符分隔名称序列中的名称

public String getName()获得文件名称
返回由此抽象路径名表示的文件或目录的名称
该名称是路径名名称序列中的最后一个名称
如果路径名名称序列为空,则返回空字符串

public long length()返回由此抽象路径名表示的文件的大小
如果此路径名表示一个目录,则返回值是不确定的

public long lastModified()返回修改时间
返回此抽象路径名表示的文件最后一次被修改的时间

public String[] list()名字字符串数组
返回一个字符串数组,返回的是文件名

listFiles public File[] listFiles()File数组
返回一个抽象路径名数组,返回的是完整的路径名

题目

查找文件
解决方案一:是不是先获取所有,再遍历,再去依次判断,满足条件输出文件名称

File file = new File("D:\\");
File[] files=file.listFiles();
for (File file2 : files) {
	if(file2.isFile()){
		if (file2.getName().endsWith(".png")) {
			System.out.println(file2.getAbsolutePath());
		}
	}
}

解决方案二:能不能获取的时候就已经满足含有后缀名为.png的条件,直接输出就好了

File file = new File("D:\\");
String[] strings=file.list(new FilenameFilter() {
	@Override
	public boolean accept(File dir, String name) {//获取所有文件和文件夹的名称
		return new File(dir, name).isFile() && name.endsWith(".png");
	}
});

for (String string : strings) {
	System.out.println(string);
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值