Java基础之File(一)

File的定义

Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。File类在java.io包里。
说的通俗易懂就是,file就是指一个文件或文件夹,文件及文件夹的创建、删除需要用到它,可以通过他获取文件的各种信息,但是不能获取文件的内容!!要获取文件的内容需要用到其他的类。

File构造函数

我们通过File的构造函数创建File对象(构造函数只是创建file的实例,并没有进行读写操作,因此,就算路径是错误的也不会报错)

  1. 通过给定的父抽象路径名和子路径名字符串创建一个新的File实例。
    File(File parent, String child);
  2. 通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
    File(String pathname)
  3. 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
    File(String parent, String child)
  4. 通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
    File(URI uri)

个人觉得第二种创建方式是最常见的,直接给定一个路径来创建file对象。

File方法(操作文件)

这里不会太过于详细的介绍每一个方法,我会列举我个人认为较为常用的方法。这里贴一个菜鸟教程的网页,里面有详细的方法列举,可作为参考: https://www.runoob.com/java/java-file.html.

  1. public String getName()
    获取文件或目录的文件名
  2. public String getParent()
    获取文件或目录的父文件的路径,如果给定的抽象路径没有父目录,则返回null
  3. public File getParentFile()
    获取文件或目录的父文件,如果给定的抽象路径没有父目录,则返回null
  4. public String getPath()
    获取文件或目录的路径
  5. public boolean canRead()
    判断文件或目录是否可读
  6. public boolean canWrite()
    判断文件或目录是否可写
  7. public boolean exists()
    判断文件或目录是否存在
  8. public boolean isFile()
    判断是否是文件
  9. public boolean isDirectory()
    判断是否是目录
  10. public long length()
    获取文件的长度
  11. public long lastModified()
    获取文件最后一次修改时间
  12. public boolean createNewFile() throws IOException
    当文件不存在时创建新文件,需抛异常
  13. public boolean delete()
    删除文件或为空的目录,当目录非空时无法删除。
  14. public String[] list()
    获取目录中的文件及目录的名称,返回名称数组
  15. public File[] listFiles()
    获取目录中的文件及目录,返回文件数组
  16. public boolean mkdir()
    创建指定目录,但该指定目录的父目录必须存在
  17. public boolean mkdirs()
    创建指定目录,该指定目录的父目录不存在则创建
  18. public boolean renameTo(File dest)
    文件重命名

示例

在这里,我会写出一个递归删除目录的示例,以便各位参考。

public class IOLearn {
	public static void main(String[] args) {
		File file = new File("D://a");
		if(!file.exists()){
			System.out.println("该文件不存在!");
		}else{//存在则删除
			deletes(file);
			System.out.println("删除完毕!");
		}
	}
	
	/**
	 * 删除文件及目录
	 * @param file
	 */
	public static void deletes(File file){
		if(file.isDirectory()){//判断是否是目录
			File[] files = file.listFiles();//获取目录下的所有文件
			for (File f : files) {//遍历每一个文件
				deletes(f);//删除
			}
		}
		file.delete();
	}
}

本来是打算只写一个示例的,结果想起了listFiles有一个重载方法挺好用的,可以用来过滤文件,它需要传入一个文件过滤器,在文件过滤器中重写accept方法,返回条件为真的文件,如下所示。

/**
 * 获取文件中符合条件的部分子项
 * @author ZDL
 *
 */
public class IOLearn2 {
	public static void main(String[] args) {
		File file = new File("D:");
		//listFiles的重载方法,需要传入文件过滤器
		File[] files = file.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File f) {//重写accept方法
				return f.isFile();//过滤条件
			}
		});
		//循环打印文件名
		for (File file2 : files) {
			System.out.println(file2.getName());
		}
	}
	
}

结束语

这是File的部分基础知识,但是如果要用File类的话,这些东西会经常使用,所以,对这些知识的巩固是很有必要的,为什么会想起来做这些基础篇呢?是因为自己的基础确实不牢固,我想再加深一下,虽然这些东西在网上一搜就出来了,但是,像这一类的简单知识点还去查阅资料,会消耗我们大量的开发时间,会减缓我们的工作效率,我之前就是这样,很多东西都是百度百度再百度,做一个功能贼慢,所以,是不可取的。
这也算是我的第一个正式的博客,希望以后能够继续保持初心,坚持下去。第一次写这些东西确实还挺费时间的,有做的不好的不对的地方,望大家多多包容,在下面告诉我,我会及时更正。谢谢。
在这里插入图片描述

  • 12
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值