解決java使用file.createNewFile()創(chuàng)建文件時(shí)報(bào)錯(cuò)目錄不存在的問題
使用file.createNewFile()創(chuàng)建文件時(shí)報(bào)錯(cuò)目錄不存在
普通創(chuàng)建文件代碼
String strPath = "E:\\test\\test1\\test.txt";
File file = new File(strPath);
if(!file.exists())){
file.createNewFile();
}上述這段代碼,當(dāng)E:\test\test1目錄不存在時(shí),createNewFile()執(zhí)行會(huì)報(bào)錯(cuò):
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();
}這段代碼會(huì)創(chuàng)建目錄
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();上述這段代碼可以成功創(chuàng)建文件。
原因:
先判斷文件所處目錄是否存在,如果不存在則遞歸創(chuàng)建目錄;注意是mkdirs()而不是mkdir()。
mkdir:只能用來創(chuàng)建文件夾,且只能創(chuàng)建一級(jí)目錄,如果上級(jí)不存在,就會(huì)創(chuàng)建失敗。mkdirs:只能用來創(chuàng)建文件夾,且能創(chuàng)建多級(jí)目錄 ,如果上級(jí)不存在,就會(huì)自動(dòng)創(chuàng)建。(創(chuàng)建文件夾多用此)createNewFile:只能用來創(chuàng)建文件,且只能在已存在的目錄下創(chuàng)建文件,否則會(huì)創(chuàng)建失敗。FileOutputStream os=new FileOutputStream(file)也可創(chuàng)建文件,看情況使用
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于javaweb+jsp的游泳館會(huì)員管理系統(tǒng)(附源碼)
這篇文章主要介紹了基于javaweb+jsp的游泳館會(huì)員管理系統(tǒng),開發(fā)工具eclipse/idea/myeclipse/sts等均可配置運(yùn)行,此源代碼社和課程設(shè)計(jì),大作業(yè)及畢業(yè)設(shè)計(jì)項(xiàng)目,需要的朋友可以參考下2022-04-04
Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法
這篇文章主要介紹了Java實(shí)現(xiàn)數(shù)字轉(zhuǎn)成英文的方法,涉及java數(shù)組與字符串的相關(guān)操作技巧,需要的朋友可以參考下2015-05-05
關(guān)于application.yml基礎(chǔ)配置以及讀取方式
這篇文章主要介紹了關(guān)于application.yml基礎(chǔ)配置以及讀取方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
SpringBoot整合Prometheus如何實(shí)現(xiàn)資源監(jiān)控
本文介紹了如何使用Prometheus監(jiān)控SpringBoot應(yīng)用,Prometheus是一個(gè)開源的監(jiān)控和告警工具,SpringBootActuator提供了監(jiān)控和管理SpringBoot應(yīng)用的工具,通過添加依賴、配置Actuator和Prometheus,可以實(shí)現(xiàn)對(duì)SpringBoot應(yīng)用的實(shí)時(shí)監(jiān)控2024-12-12
Java使用位運(yùn)算實(shí)現(xiàn)權(quán)限管理的示例詳解
在開發(fā)中,權(quán)限管理是一個(gè)非常常見的需求,本文將詳細(xì)講解如何使用 Java 中的 位運(yùn)算 實(shí)現(xiàn)一個(gè)輕量級(jí)、高效的權(quán)限管理系統(tǒng),并提供完整的代碼示例和解釋,感興趣的小伙伴可以了解下2025-06-06
Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例
這篇文章主要介紹了Vue.Js及Java實(shí)現(xiàn)文件分片上傳代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

