本文對File的API和常用方法進行介紹。
File 介紹
File 是“檔案”和“目錄路徑名”的抽象表示形式。
File 直接繼承於Object,實現了Serializable介面和Comparable介面。實現Serializable介面,意味著File對象支援序列化操作。而實現Comparable介面,意味著File對象之間可以比較大小;File能直接被儲存在有序集合(如TreeSet、TreeMap中)。
File 函數列表
// 靜態成員public static final String pathSeparator // 路徑分割符":"public static final char pathSeparatorChar // 路徑分割符':'public static final String separator // 分隔字元"/"public static final char separatorChar // 分隔字元'/' // 建構函式File(File dir, String name)File(String path)File(String dirPath, String name)File(URI uri) // 成員函數boolean canExecute() // 測試應用程式是否可以執行此抽象路徑名表示的檔案。boolean canRead() // 測試應用程式是否可以讀取此抽象路徑名表示的檔案。boolean canWrite() // 測試應用程式是否可以修改此抽象路徑名表示的檔案。int compareTo(File pathname) // 按字母順序比較兩個抽象路徑名。boolean createNewFile() // 若且唯若不存在具有此抽象路徑名指定名稱的檔案時,不可分地建立一個新的空檔案。static File createTempFile(String prefix, String suffix) // 在預設臨時檔案目錄中建立一個空檔案,使用給定首碼和尾碼產生其名稱。static File createTempFile(String prefix, String suffix, File directory) // 在指定目錄中建立一個新的空檔案,使用給定的首碼和尾碼字串產生其名稱。boolean delete() // 刪除此抽象路徑名表示的檔案或目錄。void deleteOnExit() // 在虛擬機器終止時,請求刪除此抽象路徑名表示的檔案或目錄。boolean equals(Object obj) // 測試此抽象路徑名與給定對象是否相等。boolean exists() // 測試此抽象路徑名表示的檔案或目錄是否存在。File getAbsoluteFile() // 返回此抽象路徑名的絕對路徑名形式。String getAbsolutePath() // 返回此抽象路徑名的絕對路徑名字串。File getCanonicalFile() // 返回此抽象路徑名的規範形式。String getCanonicalPath() // 返回此抽象路徑名的規範路徑名字串。long getFreeSpace() // 返回此抽象路徑名指定的分區中未分配的位元組數。String getName() // 返回由此抽象路徑名表示的檔案或目錄的名稱。String getParent() // 返回此抽象路徑名父目錄的路徑名字串;如果此路徑名沒有指定父目錄,則返回 null。File getParentFile() // 返回此抽象路徑名父目錄的抽象路徑名;如果此路徑名沒有指定父目錄,則返回 null。String getPath() // 將此抽象路徑名轉換為一個路徑名字串。long getTotalSpace() // 返回此抽象路徑名指定的分區大小。long getUsableSpace() // 返回此抽象路徑名指定的分區上可用於此虛擬機器的位元組數。int hashCode() // 計算此抽象路徑名的雜湊碼。boolean isAbsolute() // 測試此抽象路徑名是否為絕對路徑名。boolean isDirectory() // 測試此抽象路徑名表示的檔案是否是一個目錄。boolean isFile() // 測試此抽象路徑名表示的檔案是否是一個標準檔案。boolean isHidden() // 測試此抽象路徑名指定的檔案是否是一個隱藏檔案。long lastModified() // 返回此抽象路徑名表示的檔案最後一次被修改的時間。long length() // 返回由此抽象路徑名表示的檔案的長度。String[] list() // 返回一個字串數組,這些字串指定此抽象路徑名表示的目錄中的檔案和目錄。String[] list(FilenameFilter filter) // 返回一個字串數組,這些字串指定此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。File[] listFiles() // 返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的檔案。File[] listFiles(FileFilter filter) // 返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。File[] listFiles(FilenameFilter filter) // 返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的檔案和目錄。static File[] listRoots() // 列出可用的檔案系統根。boolean mkdir() // 建立此抽象路徑名指定的目錄。boolean mkdirs() // 建立此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。boolean renameTo(File dest) // 重新命名此抽象路徑名表示的檔案。boolean setExecutable(boolean executable) // 設定此抽象路徑名所有者執行許可權的一個便捷方法。boolean setExecutable(boolean executable, boolean ownerOnly) // 設定此抽象路徑名的所有者或所有使用者的執行許可權。boolean setLastModified(long time) // 設定此抽象路徑名指定的檔案或目錄的最後一次修改時間。boolean setReadable(boolean readable) // 設定此抽象路徑名所有者讀許可權的一個便捷方法。boolean setReadable(boolean readable, boolean ownerOnly) // 設定此抽象路徑名的所有者或所有使用者的讀許可權。boolean setReadOnly() // 標記此抽象路徑名指定的檔案或目錄,從而只能對其進行讀操作。boolean setWritable(boolean writable) // 設定此抽象路徑名所有者寫入權限的一個便捷方法。boolean setWritable(boolean writable, boolean ownerOnly) // 設定此抽象路徑名的所有者或所有使用者的寫入權限。String toString() // 返回此抽象路徑名的路徑名字串。URI toURI() // 構造一個表示此抽象路徑名的 file: URI。URL toURL() // 已淘汰。 此方法不會自動轉義 URL 中的非法字元。建議新的代碼使用以下方式將抽象路徑名轉換為 URL:首先通過 toURI 方法將其轉換為 URI,然後通過 URI.toURL 方法將 URI 裝換為 URL。