最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細(xì)總結(jié)Java創(chuàng)建文件夾的方法及優(yōu)缺點(diǎn)

 更新時(shí)間:2021年05月26日 17:28:52   作者:Java架構(gòu)師(公眾號(hào):毛奇志)  
很多小伙伴都不知道如何用Java創(chuàng)建文件夾,今天給大家整理了這篇文章,文中有非常詳細(xì)的方法介紹及方法的優(yōu)缺點(diǎn),對(duì)正在學(xué)習(xí)java的小伙伴們有很好地幫助,需要的朋友可以參考下

一、傳統(tǒng)API創(chuàng)建文件夾方式

Java傳統(tǒng)的IO API種使用java.io.File類中的file.mkdir()和file.mkdirs()方法創(chuàng)建文件夾

file.mkdir()創(chuàng)建文件夾成功返回true,失敗返回false。如果被創(chuàng)建文件夾的父文件夾不存在也返回false.沒(méi)有異常拋出。
file.mkdirs()創(chuàng)建文件夾連同該文件夾的父文件夾,如果創(chuàng)建成功返回true,創(chuàng)建失敗返回false。創(chuàng)建失敗同樣沒(méi)有異常拋出。

@Test
void testCreateDir1() {
   //“D:\data111”目錄現(xiàn)在不存在
   String dirStr = "D:\\data111\\test";
   File directory = new File(dirStr);

   //mkdir
   boolean hasSucceeded = directory.mkdir();
   System.out.println("創(chuàng)建文件夾結(jié)果(不含父文件夾):" + hasSucceeded);

   //mkdirs
   hasSucceeded = directory.mkdirs();
   System.out.println("創(chuàng)建文件夾結(jié)果(包含父文件夾):" + hasSucceeded);

}

輸出結(jié)果如下:使用mkdir創(chuàng)建失敗,使用mkdirs創(chuàng)建成功。

創(chuàng)建文件夾結(jié)果(不含父文件夾):false
創(chuàng)建文件夾結(jié)果(包含父文件夾):true

大家可以看到,mkdir和mkdirs雖然可以創(chuàng)建文件,但是它們?cè)诋惓L幚淼沫h(huán)節(jié)做的非常不友好。創(chuàng)建失敗之后統(tǒng)一返回false,創(chuàng)建失敗的原因沒(méi)有說(shuō)明。是父文件夾不存在所以創(chuàng)建失敗?還是文件夾已經(jīng)存在所以創(chuàng)建失?。窟€是因?yàn)榇疟PIO原因?qū)е聞?chuàng)建文件夾失???

二、Java NIO創(chuàng)建文件夾

為了解決傳統(tǒng)IO創(chuàng)建文件夾中異常失敗處理問(wèn)題不明確的問(wèn)題,在Java的NIO中進(jìn)行了改進(jìn)。

2.1. Files.createDirectory創(chuàng)建文件夾

如果被創(chuàng)建文件夾的父文件夾不存在,則拋出NoSuchFileException.
如果被創(chuàng)建的文件夾已經(jīng)存在,則拋出FileAlreadyExistsException.
如果因?yàn)榇疟PIO出現(xiàn)異常,則拋出IOException.

Path path = Paths.get("D:\\data222\\test");
Path pathCreate = Files.createDirectory(path);

2.2.Files.createDirectories創(chuàng)建文件夾及其父文件夾

如果被創(chuàng)建文件夾的父文件夾不存在,就創(chuàng)建它;
如果被創(chuàng)建的文件夾已經(jīng)存在,就是用已經(jīng)存在的文件夾,不會(huì)重復(fù)創(chuàng)建,沒(méi)有異常拋出;
如果因?yàn)榇疟PIO出現(xiàn)異常,則拋出IOException.

所以,可以使用Files.createDirectories的地方不使用Files.createDirectory,盡量更少的遇到異常。

Path path = Paths.get("D:\\data222\\test");
Path pathCreate = Files.createDirectorys(path);

另外大家要注意:NIO的API創(chuàng)建的文件夾返回值是Path,這樣方便我們?cè)趧?chuàng)建完成文件夾之后繼續(xù)向文件夾里面寫入文件數(shù)據(jù)等操作。比傳統(tǒng)IO只返回一個(gè)boolean值要好得多。

三、小結(jié)

Java語(yǔ)言中,創(chuàng)建指定目錄包含四種方法,涉及兩個(gè)不同類 java.io.File類 和 java.nio.file.Files

file.mkdir()創(chuàng)建文件夾成功返回true,失敗返回false。如果被創(chuàng)建文件夾的父文件夾不存在也返回false.沒(méi)有異常拋出。

file.mkdirs()創(chuàng)建文件夾連同該文件夾的父文件夾,如果創(chuàng)建成功返回true,創(chuàng)建失敗返回false。創(chuàng)建失敗同樣沒(méi)有異常拋出。

Files.createDirectory創(chuàng)建文件夾
如果被創(chuàng)建文件夾的父文件夾不存在,則拋出NoSuchFileException.
如果被創(chuàng)建的文件夾已經(jīng)存在,則拋出FileAlreadyExistsException.
如果因?yàn)榇疟PIO出現(xiàn)異常,則拋出IOException.

Files.createDirectories創(chuàng)建文件夾及其父文件夾
如果被創(chuàng)建文件夾的父文件夾不存在,就創(chuàng)建它;
如果被創(chuàng)建的文件夾已經(jīng)存在,就是用已經(jīng)存在的文件夾,不會(huì)重復(fù)創(chuàng)建,沒(méi)有異常拋出;
如果因?yàn)榇疟PIO出現(xiàn)異常,則拋出IOException.

四種方式中,最優(yōu)方式使用 Files.createDirectories 創(chuàng)建文件夾。

到此這篇關(guān)于詳細(xì)總結(jié)Java創(chuàng)建文件夾的方法及優(yōu)缺點(diǎn)的文章就介紹到這了,更多相關(guān)Java創(chuàng)建文件夾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java鎖的升級(jí)策略 偏向鎖 輕量級(jí)鎖 重量級(jí)鎖

    Java鎖的升級(jí)策略 偏向鎖 輕量級(jí)鎖 重量級(jí)鎖

    在本文中小編給的大家整理了關(guān)于Java鎖的升級(jí)策略 偏向鎖 輕量級(jí)鎖 重量級(jí)鎖的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。
    2019-06-06
  • 如何利用Java遞歸解決“九連環(huán)”公式

    如何利用Java遞歸解決“九連環(huán)”公式

    這篇文章主要給大家介紹了關(guān)于如何利用Java遞歸解決“九連環(huán)”公式的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 如何解決executors線程池創(chuàng)建的線程不釋放的問(wèn)題

    如何解決executors線程池創(chuàng)建的線程不釋放的問(wèn)題

    這篇文章主要介紹了如何解決executors線程池創(chuàng)建的線程不釋放的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 淺析Mysql中的視圖

    淺析Mysql中的視圖

    這篇文章主要介紹了淺析Mysql中的視圖,視圖是從一個(gè)或者多個(gè)表中導(dǎo)出的表,視圖的行為與表非常相似,在視圖中用戶可以使用SELECT語(yǔ)句查詢數(shù)據(jù),以及使用INSERT、UPDATE和DELETE修改記錄,需要的朋友可以參考下
    2023-05-05
  • Spring Boot高級(jí)教程之Spring Boot連接MySql數(shù)據(jù)庫(kù)

    Spring Boot高級(jí)教程之Spring Boot連接MySql數(shù)據(jù)庫(kù)

    這篇文章主要為大家詳細(xì)介紹了Spring Boot高級(jí)教程之Spring Boot連接MySql數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出

    Java Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成及Excel文件的導(dǎo)入和導(dǎo)出

    Hutool是一個(gè)小而全的Java工具類庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,本文主要介紹了使用Hutool工具實(shí)現(xiàn)驗(yàn)證碼生成和excel文件的導(dǎo)入、導(dǎo)出,需要的朋友可參考一下
    2021-11-11
  • 記一次公司JVM堆溢出抽絲剝繭定位的過(guò)程解析

    記一次公司JVM堆溢出抽絲剝繭定位的過(guò)程解析

    這篇文章主要介紹了記一次公司JVM堆溢出抽絲剝繭定位的過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Mybatis Properties 配置優(yōu)先級(jí)詳解

    Mybatis Properties 配置優(yōu)先級(jí)詳解

    這篇文章主要介紹了Mybatis Properties 配置優(yōu)先級(jí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java Lambda 表達(dá)式源碼解析

    Java Lambda 表達(dá)式源碼解析

    這篇文章主要介紹了Java Lambda在JVM中是如何實(shí)現(xiàn)的,感興趣的小伙伴一起來(lái)了解了解
    2021-08-08
  • springBoot接入阿里云oss的實(shí)現(xiàn)步驟

    springBoot接入阿里云oss的實(shí)現(xiàn)步驟

    這篇文章主要介紹了springBoot接入阿里云oss的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

增城市| 临高县| 同仁县| 吉安市| 双江| 醴陵市| 琼结县| 临江市| 南召县| 黑水县| 汉沽区| 庆安县| 夏津县| 桃园县| 文山县| 余姚市| 德阳市| 策勒县| 潞西市| 义马市| 郓城县| 乌审旗| 乌兰县| 安陆市| 高台县| 海兴县| 龙里县| 昌江| 敦煌市| 攀枝花市| 南投市| 温州市| 通河县| 黑山县| 富阳市| 商都县| 盱眙县| 安龙县| 客服| 新乐市| 浦江县|