總結java建立資料夾的4種方法及其優缺點-JAVA IO基礎總結第三篇

字母哥部落格發表於2020-09-01

本文是Java IO總結系列篇的第3篇,前篇的訪問地址如下:

本文為大家介紹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值要好得多。

歡迎關注我的部落格,裡面有很多精品合集

  • 本文轉載註明出處(必須帶連線,不能只轉文字):字母哥部落格

覺得對您有幫助的話,幫我點贊、分享!您的支援是我不竭的創作動力! 。另外,筆者最近一段時間輸出瞭如下的精品內容,期待您的關注。

相關文章