file.mkdir()、file.mkdirs()和file.createNewFile()的區(qū)別
file.mkdir()創(chuàng)建單級(jí)文件夾,file.mkdirs()創(chuàng)建多級(jí)文件夾,file.createNewFile()創(chuàng)建的是一個(gè)文件。
下面通過(guò)一個(gè)demo來(lái)驗(yàn)證一下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File internalFile = getCacheDir();
String internalPath = internalFile.getPath();
File file1 = new File(internalPath,"demo1");
File file2 = new File(internalPath,"demo2/demo");
File file3 = new File(internalPath,"demo3/demo");
File file4 = new File(internalPath+"/demo3","demo4");
file2.mkdir();
file3.mkdirs();
file4.mkdir();
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
頁(yè)面布局上有個(gè)按鈕,點(diǎn)擊按鈕創(chuàng)建文件,在點(diǎn)擊之前先看一看應(yīng)用內(nèi)存的文件目錄,好知道這個(gè)過(guò)程發(fā)生了啥,點(diǎn)擊前目錄如下:

從目錄中看到只有一個(gè)文件夾和兩個(gè)文件,運(yùn)行上面程序后我們來(lái)看看變化:

從圖中可以看到,file1調(diào)用方法file.createNewFile()創(chuàng)建的是一個(gè)文件;file2是一個(gè)多級(jí)目錄調(diào)用file.mkdir()方法沒(méi)有創(chuàng)建成功;file3也是一個(gè)多級(jí)目錄調(diào)用方法file.mkdirs()方法創(chuàng)建成功;file4是和file2做對(duì)比的,以file3的父目錄作為父目錄調(diào)用方法file.mkdir()創(chuàng)建單級(jí)文件夾成功;最后我們?cè)偌觾尚写a看看多級(jí)目錄使用file.createNewFile()方法能否創(chuàng)建成功:
File file5 = new File(internalPath,"demo5/demo"); file5.createNewFile();

運(yùn)行程序后文件目錄并沒(méi)有發(fā)現(xiàn)有新增的文件或文件夾。
總結(jié)
file.mkdir()創(chuàng)建單級(jí)文件夾,并且需要父目錄存在的情況下才能創(chuàng)建成功;file.mkdirs()創(chuàng)建多級(jí)文件夾,不論父目錄是否存在都能創(chuàng)建成功;file.createNewFile()創(chuàng)建的是一個(gè)文件,父目錄不存在時(shí)不能創(chuàng)建成功。
相關(guān)文章
java實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器界面
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
使用java?-jar命令啟動(dòng)Spring?Boot應(yīng)用時(shí)指定特定配置文件的幾種實(shí)現(xiàn)方式
這篇文章主要介紹了在使用java-jar命令啟動(dòng)SpringBoot應(yīng)用時(shí),指定特定配置文件的幾種方式,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2025-01-01
SpringBoot中集成Swagger2及簡(jiǎn)單實(shí)用
使用Swagger你只需要按照它的規(guī)范去定義接口及接口相關(guān)的信息,再通過(guò)Swagger衍生出來(lái)的一系列項(xiàng)目和工具,就可以做到生成各種格式的接口文檔,以及在線(xiàn)接口調(diào)試頁(yè)面等等,這篇文章主要介紹了SpringBoot中集成Swagger2,需要的朋友可以參考下2023-06-06
淺談MultipartFile中transferTo方法的坑
這篇文章主要介紹了MultipartFile中transferTo方法的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
IntelliJ IDEA 編輯器的全局搜索中使用正則表達(dá)式的操作方法
這篇文章主要介紹了IntelliJ IDEA 編輯器的全局搜索中使用正則表達(dá)式的相關(guān)知識(shí),補(bǔ)充介紹了IDEA查找和替換實(shí)用正則,感興趣的朋友跟隨小編一起看看吧2024-01-01
Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)
這篇文章主要介紹了Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例, 相信使用過(guò)Spring的眾多開(kāi)發(fā)者都知道Spring提供了非常好用的JavaMailSender接口實(shí)現(xiàn)郵件發(fā)送。在Spring Boot的Starter模塊中也為此提供了自動(dòng)化配置。需要的朋友可以參考借鑒。2017-02-02
JAVA實(shí)現(xiàn)微信APPV3支付保姆級(jí)教程
微信實(shí)現(xiàn)支付功能與支付寶實(shí)現(xiàn)支付功能是相似的,這篇文章主要介紹了JAVA實(shí)現(xiàn)微信APPV3支付的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01

