您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Java如何創建文件夾的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
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原因導致創建文件夾失敗?
為了解決傳統IO創建文件夾中異常失敗處理問題不明確的問題,在Java的NIO中進行了改進。
如果被創建文件夾的父文件夾不存在,則拋出NoSuchFileException.
如果被創建的文件夾已經存在,則拋出FileAlreadyExistsException.
如果因為磁盤IO出現異常,則拋出IOException.
Path path = Paths.get("D:\\data222\\test"); Path pathCreate = Files.createDirectory(path);
如果被創建文件夾的父文件夾不存在,就創建它;
如果被創建的文件夾已經存在,就是用已經存在的文件夾,不會重復創建,沒有異常拋出;
如果因為磁盤IO出現異常,則拋出IOException.
所以,可以使用Files.createDirectories的地方不使用Files.createDirectory,盡量更少的遇到異常。
Path path = Paths.get("D:\\data222\\test"); Path pathCreate = Files.createDirectorys(path);
另外大家要注意:NIO的API創建的文件夾返回值是Path,這樣方便我們在創建完成文件夾之后繼續向文件夾里面寫入文件數據等操作。比傳統IO只返回一個boolean值要好得多。
Java語言中,創建指定目錄包含四種方法,涉及兩個不同類 java.io.File類 和 java.nio.file.Files
file.mkdir()創建文件夾成功返回true,失敗返回false。如果被創建文件夾的父文件夾不存在也返回false.沒有異常拋出。
file.mkdirs()創建文件夾連同該文件夾的父文件夾,如果創建成功返回true,創建失敗返回false。創建失敗同樣沒有異常拋出。
Files.createDirectory創建文件夾
如果被創建文件夾的父文件夾不存在,則拋出NoSuchFileException.
如果被創建的文件夾已經存在,則拋出FileAlreadyExistsException.
如果因為磁盤IO出現異常,則拋出IOException.
Files.createDirectories創建文件夾及其父文件夾
如果被創建文件夾的父文件夾不存在,就創建它;
如果被創建的文件夾已經存在,就是用已經存在的文件夾,不會重復創建,沒有異常拋出;
如果因為磁盤IO出現異常,則拋出IOException.
四種方式中,最優方式使用 Files.createDirectories 創建文件夾。
感謝各位的閱讀!關于“Java如何創建文件夾”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。