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

