file.mkdir()、file.mkdirs()和file.createNewFile()的區(qū)別
file.mkdir()創(chuàng)建單級文件夾,file.mkdirs()創(chuàng)建多級文件夾,file.createNewFile()創(chuàng)建的是一個文件。
下面通過一個demo來驗證一下:
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();
}
}
});
}
}
頁面布局上有個按鈕,點擊按鈕創(chuàng)建文件,在點擊之前先看一看應用內(nèi)存的文件目錄,好知道這個過程發(fā)生了啥,點擊前目錄如下:

從目錄中看到只有一個文件夾和兩個文件,運行上面程序后我們來看看變化:

從圖中可以看到,file1調(diào)用方法file.createNewFile()創(chuàng)建的是一個文件;file2是一個多級目錄調(diào)用file.mkdir()方法沒有創(chuàng)建成功;file3也是一個多級目錄調(diào)用方法file.mkdirs()方法創(chuàng)建成功;file4是和file2做對比的,以file3的父目錄作為父目錄調(diào)用方法file.mkdir()創(chuàng)建單級文件夾成功;最后我們再加兩行代碼看看多級目錄使用file.createNewFile()方法能否創(chuàng)建成功:
File file5 = new File(internalPath,"demo5/demo"); file5.createNewFile();

運行程序后文件目錄并沒有發(fā)現(xiàn)有新增的文件或文件夾。
總結(jié)
file.mkdir()創(chuàng)建單級文件夾,并且需要父目錄存在的情況下才能創(chuàng)建成功;file.mkdirs()創(chuàng)建多級文件夾,不論父目錄是否存在都能創(chuàng)建成功;file.createNewFile()創(chuàng)建的是一個文件,父目錄不存在時不能創(chuàng)建成功。
相關(guān)文章
springboot+vue制作后臺管理系統(tǒng)項目
本文詳細介紹了后臺管理使用springboot+vue制作,以分步驟、圖文的形式詳細講解,大家有需要的可以參考參考2021-08-08
從0到1學SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解
Spring?Cloud?Gateway的目標提供統(tǒng)一的路由方式且基于Filter?鏈的方式提供了網(wǎng)關(guān)基本的功能,?例如:安全、監(jiān)控、指標和限流?,這篇文章主要介紹了從0到1學SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解,需要的朋友可以參考下2023-04-04
Java對象轉(zhuǎn)JSON時動態(tài)的增刪改查屬性詳解
這篇文章主要介紹了Java對象轉(zhuǎn)JSON時如何動態(tài)的增刪改查屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
Spring Boot中自動執(zhí)行sql腳本的實現(xiàn)
這篇文章主要介紹了Spring Boot中自動執(zhí)行sql腳本的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12
Spring定時任務輪詢本地數(shù)據(jù)庫實現(xiàn)過程解析
這篇文章主要介紹了Spring定時任務輪詢本地數(shù)據(jù)庫實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01
java算法之靜態(tài)內(nèi)部類實現(xiàn)雪花算法
這篇文章主要介紹了java算法之靜態(tài)內(nèi)部類實現(xiàn)雪花算法,對算法感興趣的同學,一定要看一下2021-05-05
如何用匿名內(nèi)部類實現(xiàn) Java 同步回調(diào)
這篇文章主要介紹了如何用匿名內(nèi)部類實現(xiàn) Java 同步回調(diào),幫助大家更好的理解和學習Java,感興趣的朋友可以了解下2020-10-10

