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

詳細總結Java創(chuàng)建文件夾的方法及優(yōu)缺點

 更新時間:2021年05月26日 17:28:52   作者:Java架構師(公眾號:毛奇志)  
很多小伙伴都不知道如何用Java創(chuàng)建文件夾,今天給大家整理了這篇文章,文中有非常詳細的方法介紹及方法的優(yōu)缺點,對正在學習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.沒有異常拋出。
file.mkdirs()創(chuàng)建文件夾連同該文件夾的父文件夾,如果創(chuàng)建成功返回true,創(chuàng)建失敗返回false。創(chuàng)建失敗同樣沒有異常拋出。

@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)建文件夾結果(不含父文件夾):" + hasSucceeded);

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

}

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

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

大家可以看到,mkdir和mkdirs雖然可以創(chuàng)建文件,但是它們在異常處理的環(huán)節(jié)做的非常不友好。創(chuàng)建失敗之后統(tǒng)一返回false,創(chuàng)建失敗的原因沒有說明。是父文件夾不存在所以創(chuàng)建失敗?還是文件夾已經存在所以創(chuàng)建失?。窟€是因為磁盤IO原因導致創(chuàng)建文件夾失???

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

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

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

如果被創(chuàng)建文件夾的父文件夾不存在,則拋出NoSuchFileException.
如果被創(chuàng)建的文件夾已經存在,則拋出FileAlreadyExistsException.
如果因為磁盤IO出現(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)建的文件夾已經存在,就是用已經存在的文件夾,不會重復創(chuàng)建,沒有異常拋出;
如果因為磁盤IO出現(xiàn)異常,則拋出IOException.

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

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

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

三、小結

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

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

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

Files.createDirectory創(chuàng)建文件夾
如果被創(chuàng)建文件夾的父文件夾不存在,則拋出NoSuchFileException.
如果被創(chuàng)建的文件夾已經存在,則拋出FileAlreadyExistsException.
如果因為磁盤IO出現(xiàn)異常,則拋出IOException.

Files.createDirectories創(chuàng)建文件夾及其父文件夾
如果被創(chuàng)建文件夾的父文件夾不存在,就創(chuàng)建它;
如果被創(chuàng)建的文件夾已經存在,就是用已經存在的文件夾,不會重復創(chuàng)建,沒有異常拋出;
如果因為磁盤IO出現(xiàn)異常,則拋出IOException.

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

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

相關文章

  • Java鎖的升級策略 偏向鎖 輕量級鎖 重量級鎖

    Java鎖的升級策略 偏向鎖 輕量級鎖 重量級鎖

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

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

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

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

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

    淺析Mysql中的視圖

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

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

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

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

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

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

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

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

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

    Java Lambda 表達式源碼解析

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

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

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

最新評論

宁武县| 清涧县| 山东省| 广东省| 房山区| 剑阁县| 土默特右旗| 庄浪县| 东乌珠穆沁旗| 三穗县| 芦溪县| 错那县| 涞源县| 襄樊市| 马边| 临武县| 油尖旺区| 佛山市| 开江县| 北京市| 阜南县| 安远县| 开封县| 连城县| 周宁县| 河间市| 金乡县| 宁远县| 滨海县| 黔南| 镇原县| 台州市| 留坝县| 咸阳市| 芒康县| 阳春市| 铜鼓县| 平原县| 苗栗县| 西平县| 顺平县|