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)有新增的文件或文件夾。
總結
file.mkdir()創(chuàng)建單級文件夾,并且需要父目錄存在的情況下才能創(chuàng)建成功;file.mkdirs()創(chuàng)建多級文件夾,不論父目錄是否存在都能創(chuàng)建成功;file.createNewFile()創(chuàng)建的是一個文件,父目錄不存在時不能創(chuàng)建成功。
相關文章
使用java?-jar命令啟動Spring?Boot應用時指定特定配置文件的幾種實現(xiàn)方式
這篇文章主要介紹了在使用java-jar命令啟動SpringBoot應用時,指定特定配置文件的幾種方式,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2025-01-01
淺談MultipartFile中transferTo方法的坑
這篇文章主要介紹了MultipartFile中transferTo方法的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
IntelliJ IDEA 編輯器的全局搜索中使用正則表達式的操作方法
這篇文章主要介紹了IntelliJ IDEA 編輯器的全局搜索中使用正則表達式的相關知識,補充介紹了IDEA查找和替換實用正則,感興趣的朋友跟隨小編一起看看吧2024-01-01
Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)
這篇文章主要介紹了Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例, 相信使用過Spring的眾多開發(fā)者都知道Spring提供了非常好用的JavaMailSender接口實現(xiàn)郵件發(fā)送。在Spring Boot的Starter模塊中也為此提供了自動化配置。需要的朋友可以參考借鑒。2017-02-02

