22-IO流-33-IO流(File物件-常見功能-建立和刪除)
阿新 • • 發佈:2019-01-04
package demo; import java.io.File; import java.io.IOException; public class FileMethodDemo2 { public static void main(String[] args) throws IOException { /* * File物件的常見方法: * * 2.建立與刪除 * (1)建立 * ①操作檔案 * boolean creatNewFile():當且僅當不存在指定名稱的檔案時,建立一個新的空檔案。 * static file createTempFile(String prefix, String suffix):建立新檔案,可以指定字首和字尾。 * ②操作資料夾 * boolean mkdir():當且僅當不存在指定名稱的資料夾時,建立一個新的空資料夾。(僅建立一個資料夾,且沒有子資料夾) * boolean mkdirs():建立多級目錄,即資料夾內還有資料夾,可以有若干資料夾相互巢狀。 * * (2)刪除 * boolean delete():刪除檔案或資料夾(注意檔案和資料夾都可用delete刪除) * void deleteOnExit():在虛擬機器終止時刪除檔案 * (如丟擲異常後虛擬機器終止,那麼無法執行delete關閉,所以需要用deleteOnExit()方法,如下: * ①建立檔案→丟擲異常→delete,這個拋異常會關閉JVM,那麼delete也執行不到; * ②建立檔案→deleteOnExit→丟擲異常,這樣可以正常刪除,因為會提前告訴JVM,一旦你停止就幫我刪除檔案,那麼 * 拋異常後,JVM關閉,自動刪除檔案。 * ) */ // creatAndDeleteDemo1(); creatAndDeleteDemo2(); } public static void creatAndDeleteDemo1() throws IOException { File file = new File("file.txt"); /* * 和IO流不一樣,如果當前目錄存在需要建立的檔案(file.txt),那麼createNewFile()方法不會建立檔案,返回值(b)為false, * 如果當前目錄不存在File.txt,那麼新建一個,b值為真。(IO流管你存不存在,直接覆蓋)。 */ //建立 boolean b = file.createNewFile();//既然建立新檔案,那麼必須訪問當前計算機的硬碟,所以需要丟擲IO異常。 System.out.println(b); //刪除 boolean b1 = file.delete(); System.out.println(b1); } public static void creatAndDeleteDemo2() { File file = new File("abc"); File dir = new File("aaa\\a\\b\\c"); //建立資料夾 boolean b = file.mkdir();//建立單個資料夾abc System.out.println(b); boolean b1 = dir.mkdirs();//建立多級目錄,aaa中有a,a中有b,b中有c System.out.println(b1); //刪除資料夾 boolean b2 = file.delete();//刪除單個資料夾abc System.out.println(b2); boolean b3 = dir.delete();//【注意】這裡不是刪除aaa\\a\\b\\c,而是刪除c資料夾,因為aaa\\a\\b是c的父目錄 System.out.println(b3); /** * 【特別注意】 * (1)如果在abc資料夾內還有別的檔案,那麼呼叫delete方法不能刪除abc資料夾,因為windows是從裡往外刪除,即如果內部有東西, * 那麼裡面的不刪除,不會直接刪除整個資料夾,這樣做是為了防止資料丟失。 * * (2)在java中,delete方法慎用,因為是直接刪除,不走回收站。 */ } }