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)文章
springboot+vue制作后臺(tái)管理系統(tǒng)項(xiàng)目
本文詳細(xì)介紹了后臺(tái)管理使用springboot+vue制作,以分步驟、圖文的形式詳細(xì)講解,大家有需要的可以參考參考2021-08-08從0到1學(xué)SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解
Spring?Cloud?Gateway的目標(biāo)提供統(tǒng)一的路由方式且基于Filter?鏈的方式提供了網(wǎng)關(guān)基本的功能,?例如:安全、監(jiān)控、指標(biāo)和限流?,這篇文章主要介紹了從0到1學(xué)SpringCloud之SpringCloud?gateway網(wǎng)關(guān)路由配置示例詳解,需要的朋友可以參考下2023-04-04Java對(duì)象轉(zhuǎn)JSON時(shí)動(dòng)態(tài)的增刪改查屬性詳解
這篇文章主要介紹了Java對(duì)象轉(zhuǎn)JSON時(shí)如何動(dòng)態(tài)的增刪改查屬性的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Spring Boot中自動(dòng)執(zhí)行sql腳本的實(shí)現(xiàn)
這篇文章主要介紹了Spring Boot中自動(dòng)執(zhí)行sql腳本的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Spring定時(shí)任務(wù)輪詢本地?cái)?shù)據(jù)庫(kù)實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Spring定時(shí)任務(wù)輪詢本地?cái)?shù)據(jù)庫(kù)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01java算法之靜態(tài)內(nèi)部類實(shí)現(xiàn)雪花算法
這篇文章主要介紹了java算法之靜態(tài)內(nèi)部類實(shí)現(xiàn)雪花算法,對(duì)算法感興趣的同學(xué),一定要看一下2021-05-05如何用匿名內(nèi)部類實(shí)現(xiàn) Java 同步回調(diào)
這篇文章主要介紹了如何用匿名內(nèi)部類實(shí)現(xiàn) Java 同步回調(diào),幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下2020-10-10Spring生命周期回調(diào)與容器擴(kuò)展詳解
這篇文章主要介紹了Spring生命周期回調(diào)與容器擴(kuò)展詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12使用C3P0改造JDBC對(duì)數(shù)據(jù)庫(kù)的連接
這篇文章主要為大家詳細(xì)介紹了使用C3P0改造JDBC對(duì)數(shù)據(jù)庫(kù)的連接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08