解决java使用file.createNewFile()创建文件时报错目录不存在的问题

 更新时间:2025年06月20日 09:49:04   作者:鲸落ж  
这篇文章主要介绍了解决java使用file.createNewFile()创建文件时报错目录不存在的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用file.createNewFile()创建文件时报错目录不存在

普通创建文件代码

String strPath = "E:\\test\\test1\\test.txt";
File file = new File(strPath);
if(!file.exists())){
	file.createNewFile();
}

上述这段代码,当E:\test\test1目录不存在时,createNewFile()执行会报错:

java.io.IOException:Parent directory of file does not exist

String strPath = "E:\\test\\test1\\test.txt";
File file = new File(strPath);
if(!file.exists())){
	file.mkdirs();
}

这段代码会创建目录

E:\test\test1\test.txt\

String strPath = "E:\\test\\test1\\test.txt";
File file = new File(strPath);
File fileParent = file.getParentFile();
if(!fileParent.exists()){
	fileParent.mkdirs();
}
file.createNewFile();

上述这段代码可以成功创建文件。

原因:

先判断文件所处目录是否存在,如果不存在则递归创建目录;注意是mkdirs()而不是mkdir()

  • mkdir:只能用来创建文件夹,且只能创建一级目录,如果上级不存在,就会创建失败。
  • mkdirs:只能用来创建文件夹,且能创建多级目录 ,如果上级不存在,就会自动创建。(创建文件夹多用此)
  • createNewFile:只能用来创建文件,且只能在已存在的目录下创建文件,否则会创建失败。
  • FileOutputStream os=new FileOutputStream(file)也可创建文件,看情况使用

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 浅谈servlet中的request与response

    浅谈servlet中的request与response

    下面小编就为大家带来一篇浅谈servlet中的request与response。小编觉得挺不错的,现在就分享给大家,也给大家做个参加。一起跟随小编过来看看吧
    2016-07-07
  • 基于javaweb+jsp的游泳馆会员管理系统(附源码)

    基于javaweb+jsp的游泳馆会员管理系统(附源码)

    这篇文章主要介绍了基于javaweb+jsp的游泳馆会员管理系统,开发工具eclipse/idea/myeclipse/sts等均可配置运行,此源代码社和课程设计,大作业及毕业设计项目,需要的朋友可以参考下
    2022-04-04
  • Java实现数字转成英文的方法

    Java实现数字转成英文的方法

    这篇文章主要介绍了Java实现数字转成英文的方法,涉及java数组与字符串的相关操作技巧,需要的朋友可以参考下
    2015-05-05
  • Java字符串中有多个分隔符的处理方式

    Java字符串中有多个分隔符的处理方式

    这篇文章主要介绍了Java字符串中有多个分隔符的处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • 关于application.yml基础配置以及读取方式

    关于application.yml基础配置以及读取方式

    这篇文章主要介绍了关于application.yml基础配置以及读取方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 深入理解Java设计模式之中介者模式

    深入理解Java设计模式之中介者模式

    这篇文章主要介绍了JAVA设计模式之中介者模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解
    2021-11-11
  • SpringBoot整合Prometheus如何实现资源监控

    SpringBoot整合Prometheus如何实现资源监控

    本文介绍了如何使用Prometheus监控SpringBoot应用,Prometheus是一个开源的监控和告警工具,SpringBootActuator提供了监控和管理SpringBoot应用的工具,通过添加依赖、配置Actuator和Prometheus,可以实现对SpringBoot应用的实时监控
    2024-12-12
  • Java使用位运算实现权限管理的示例详解

    Java使用位运算实现权限管理的示例详解

    在开发中,权限管理是一个非常常见的需求,本文将详细讲解如何使用 Java 中的 位运算 实现一个轻量级、高效的权限管理系统,并提供完整的代码示例和解释,感兴趣的小伙伴可以了解下
    2025-06-06
  • Spring使用redis遇到的问题及解决方案

    Spring使用redis遇到的问题及解决方案

    这篇文章主要介绍了Spring使用redis遇到的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Vue.Js及Java实现文件分片上传代码实例

    Vue.Js及Java实现文件分片上传代码实例

    这篇文章主要介绍了Vue.Js及Java实现文件分片上传代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论