java基础--getParentFile().mkdirs()的作用

关于 getParentFile().mkdirs() 的作用

0. 前言

我看到网上其他的人,解释的有点太那啥,我在这里提供一下自己的见解。虽然这个是一个比较基础的问题。

1. getParentFile().mkdirs(); 的作用

个人认为:

  • 为了防止 你在创建文件的时候,避免其文件所在的 文件夹 不存在,然后抛出异常

至于为什么这么说呢,下面来证实一下

2. getParentFile();

首先是要介绍的是getParentFIie() 这个的意思

public static void main(String[] args) {
	// 文件的路径, 这个时候,你不知道这个路径到底是文件还是文件夹
	String path = "C:\\Users\\immortal\\Desktop\\other_temp\\csdn_test\\pers\\immort\\test\\temp";
	
	// 创建一个file对象,指向其文件
	File file = new File(path);
	
	// 获得getParentFile()
	// 那么这个parentFile指的是什么呢?
	File parentFile = file.getParentFile();
	
	// 输出来看一下
	System.out.println(parentFile.getAbsolutePath());
	}

比较结果

  • 输出结果:
    C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test

  • 我们文件的目录:
    C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test\temp

      可以看到getParentFile(),返回了一个指向了 包含该文件 的文件夹的对象
      		譬如,"C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test\temp"
      		这个乍一看,像是文件夹的路径,但是getParentFile()之后,她会把她当成一个文件。
      		返回 包含 temp文件的 文件夹的绝对路径,也就是:
      		""C:\Users\immortal\Desktop\other_temp\csdn_test\pers\immort\test\"
      		这样,你调用getParentFile().mkdirs, 
      		如果在没有这个文件夹的情况下,他会创建出来,之后
      		你在使用 file.createNewFile();  这样可以绝对保证,文件创建成功,
      		因为文件所在的目录 在没有的情况下已经创建了。
    

3. 该方法的运用

3.1 前置准备

  • 可以看到,此文件夹是空的
    在这里插入图片描述

3.2 代码测试

public static void main(String[] args) throws IOException {

	 // 文件的路径
	 String path = "C:\\Users\\immortal\\Desktop\\other_temp\\csdn_test\\pers\\immort\\test\\temp";
	
	 // 创建一个file对象,指向其文件
	 File file = new File(path);
	
	 // 为了避免文件创建失败(其所在的文件夹不存在
	 // 所以创建它所在的文件目录)
	 if (null != file.getParentFile()) {
	     // 创建它所在的文件夹的目录,(该文件夹不存在的话,创建)
	     file.getParentFile().mkdirs();
	 }
	
	 // 最后创建文件。这样创建文件,会更保险
	 file.createNewFile();
}

3.3 运行结果

  • 可以看到,文件所在文件夹也创建好了,文件也同时创建好了,(因为我们没有指定扩展名,所以此文件没有扩展名)
    在这里插入图片描述

4. 总结

现在应该已经大概清楚getParentFile().mkdirs(); 的作用了吧,

  • 其作用就是为了避免文件创建失败(该文件所在的文件夹不存在所以创建它所在的文件目录)
  • 注意mkdirs() ,方法 ,如果文件夹已经存在,是不会再次创建的
  • 44
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值