
本文是Java IO總結系列篇的第3篇,前篇的訪問地址如下:
- 總結java中創建并寫檔案的5種方式-JAVA IO基礎總結第一篇
- 總結java從檔案中讀取資料的6種方法-JAVA IO基礎總結第二篇
本文為大家介紹Java IO-創建檔案夾的四種方法,及其優缺點的決議,如果您閱讀完成,覺得此文對您有幫助,請給我點個贊,您的支持是我不竭的創作動力,
1.傳統API創建檔案夾方式
Java傳統的IO API種使用java.io.File類中的file.mkdir()和file.mkdirs()方法創建檔案夾
file.mkdir()創建檔案夾成功回傳true,失敗回傳false,如果被創建檔案夾的父檔案夾不存在也回傳false.沒有例外拋出,file.mkdirs()創建檔案夾連同該檔案夾的父檔案夾,如果創建成功回傳true,創建失敗回傳false,創建失敗同樣沒有例外拋出,
@Test
void testCreateDir1() {
//“D:\data111”目錄現在不存在
String dirStr = "D:\\data111\\test";
File directory = new File(dirStr);
//mkdir
boolean hasSucceeded = directory.mkdir();
System.out.println("創建檔案夾結果(不含父檔案夾):" + hasSucceeded);
//mkdirs
hasSucceeded = directory.mkdirs();
System.out.println("創建檔案夾結果(包含父檔案夾):" + hasSucceeded);
}
輸出結果如下:使用mkdir創建失敗,使用mkdirs創建成功,
創建檔案夾結果(不含父檔案夾):false
創建檔案夾結果(包含父檔案夾):true
大家可以看到,mkdir和mkdirs雖然可以創建檔案,但是它們在例外處理的環節做的非常不友好,創建失敗之后統一回傳false,創建失敗的原因沒有說明,是父檔案夾不存在所以創建失敗?還是檔案夾已經存在所以創建失敗?還是因為磁盤IO原因導致創建檔案夾失敗?
2. Java NIO創建檔案夾
為了解決傳統IO創建檔案夾中例外失敗處理問題不明確的問題,在Java的NIO中進行了改進,
2.1. Files.createDirectory創建檔案夾
- 如果被創建檔案夾的父檔案夾不存在,則拋出
NoSuchFileException. - 如果被創建的檔案夾已經存在,則拋出
FileAlreadyExistsException. - 如果因為磁盤IO出現例外,則拋出
IOException.
Path path = Paths.get("D:\\data222\\test");
Path pathCreate = Files.createDirectory(path);
2.2.Files.createDirectories創建檔案夾及其父檔案夾
- 如果被創建檔案夾的父檔案夾不存在,就創建它
- 如果被創建的檔案夾已經存在,就是用已經存在的檔案夾,不會重復創建,沒有例外拋出
- 如果因為磁盤IO出現例外,則拋出
IOException.
Path path = Paths.get("D:\\data222\\test");
Path pathCreate = Files.createDirectorys(path);
另外大家要注意:NIO的API創建的檔案夾回傳值是Path,這樣方便我們在創建完成檔案夾之后繼續向檔案夾里面寫入檔案資料等操作,比傳統IO只回傳一個boolean值要好得多,
歡迎關注我的博客,里面有很多精品合集
- 本文轉載注明出處(必須帶連接,不能只轉文字):字母哥博客,
覺得對您有幫助的話,幫我點贊、分享!您的支持是我不竭的創作動力! ,另外,筆者最近一段時間輸出了如下的精品內容,期待您的關注,
- 《手摸手教你學Spring Boot2.0》
- 《Spring Security-JWT-OAuth2一本通》
- 《實戰前后端分離RBAC權限管理系統》
- 《實戰SpringCloud微服務從青銅到王者》
- 《VUE深入淺出系列》
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/30814.html
標籤:Java
