java.lang.Object
java.io.File
public class Fileextends Objectimplements Serializable, Comparable<File>
文件和目錄路徑名的抽象表示形式。html
用戶界面和操做系統使用與系統相關的路徑名字符串 來命名文件和目錄。此類呈現分層路徑名的一個抽象的、與系統無關的視圖。抽象路徑名 有兩個組件:java
"/"
表示 UNIX 中的根目錄,"\\\\"
表示 Microsoft Windows UNC 路徑名。抽象路徑名中的第一個名稱是目錄名,對於 Microsoft Windows UNC 路徑名則是主機名。抽象路徑名中第一個名稱以後的每一個名稱表示一個目錄;最後一個名稱既能夠表示目錄,也能夠表示文件。空 抽象路徑名沒有前綴和名稱序列。數組
路徑名字符串與抽象路徑名之間的轉換與系統有關。將抽象路徑名轉換爲路徑名字符串時,每一個名稱與下一個名稱之間用一個默認分隔符 隔開。默認名稱分隔符由系統屬性 file.separator
定義,可經過此類的公共靜態字段
和 separator
使其可用。將路徑名字符串轉換爲抽象路徑名時,可使用默認名稱分隔符或者底層系統支持的任何其餘名稱分隔符來分隔其中的名稱。測試separatorChar
不管是抽象路徑名仍是路徑名字符串,均可以是絕對 路徑名或相對 路徑名。絕對路徑名是完整的路徑名,不須要任何其餘信息就能夠定位它所表示的文件。相反,相對路徑名必須使用取自其餘路徑名的信息進行解釋。默認狀況下,java.io
包中的類老是根據當前用戶目錄來解析相對路徑名。此目錄由系統屬性 user.dir
指定,一般是 Java 虛擬機的調用目錄。spa
調用此類的 getParent()
方法能夠獲取抽象路徑名的父 路徑名,它由路徑名前綴以及路徑名名稱序列中的每一個名稱(最後一個除外)組成。對於任何具備絕對抽象路徑名的 File 對象,若是其絕對抽象路徑名以某個目錄的絕對路徑名開頭,那麼該目錄的絕對路徑名是該 File 對象的祖先。例如,抽象路徑名 "/usr" 表示的目錄是路徑名 "/usr/local/bin" 所表示目錄的一個祖先。操作系統
在處理 UNIX 平臺的根目錄,以及 Microsoft Windows 平臺的盤符、根目錄和 UNC 路徑名時,將用到前綴這一律念。以下所示:.net
"/"
。相對路徑名沒有前綴。表示根目錄的絕對路徑名的前綴爲 "/"
且名稱序列爲空。":"
組成。若是路徑名是絕對路徑名,還可能後跟 "\\"
。UNC 路徑名的前綴是 "\\\\"
;主機名和共享名是名稱序列中的前兩個名稱。沒有指定驅動器的相對路徑名沒有前綴。此類的實例可能表示(也可能不表示)實際文件系統對象,如文件或目錄。若是它表示這種對象,那麼該對象駐留在一個分區 中。分區是文件系統特定於操做系統的存儲分區。一個存儲設備(例如,物理磁盤驅動器、閃存、CD-ROM)能夠包含多個分區。對象(若是有)將駐留在此路徑名(絕對形式)某個祖先指定的分區上。3d
文件系統能夠實現對實際文件系統對象上的某些操做(好比,讀、寫、執行)進行限制。這些限制統稱爲訪問權限。文件系統能夠對一個對象設置多個訪問權限。例如,一個設置可能適用於對象的全部者,另外一個設置則可能適用於全部其餘用戶。對象上的訪問權限可能致使此類的某些方法執行失敗。code
File
類的實例是不可變的;也就是說,一旦建立,File
對象表示的抽象路徑名將永不改變。orm
字段摘要 | |
---|---|
static String |
pathSeparator 與系統有關的路徑分隔符,爲了方便,它被表示爲一個字符串。 |
static char |
pathSeparatorChar 與系統有關的路徑分隔符。 |
static String |
separator 與系統有關的默認名稱分隔符,爲了方便,它被表示爲一個字符串。 |
static char |
separatorChar 與系統有關的默認名稱分隔符。 |
構造方法摘要 | |
---|---|
File(File parent, String child) 根據 parent 抽象路徑名和 child 路徑名字符串建立一個新 File 實例。 |
|
File(String pathname) 經過將給定路徑名字符串轉換爲抽象路徑名來建立一個新 File 實例。 |
|
File(String parent, String child) 根據 parent 路徑名字符串和 child 路徑名字符串建立一個新 File 實例。 |
|
File(URI uri) 經過將給定的 file: URI 轉換爲一個抽象路徑名來建立一個新的 File 實例。 |
方法摘要 | |
---|---|
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。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
import java.io.File; import java.io.IOException; public class FileDemo2 { public static void main(String[] args) throws IOException{ //將傳入的路徑標記爲了一個file對象 File file = new File("E:\\test"); //建立file對象指定的文件 boolean b2 = file.createNewFile(); System.out.println(b2); } }
運行結果:
true
E 盤裏面出現了新的文件夾
一、建立文件的時候須要調用方法:createNewFile()
二、File file = new File("E:\\test");
先把路徑傳給 file 對象,而後createNewFile()這個方法開始根據傳過來的路徑檢測是否在此路徑下有對應的文件,
若是有,則建立失敗,返回flase,若是沒有,則建立指定的文件,並返回true。
三、只能建立文件不能建立目錄
import java.io.File; import java.io.IOException; public class FileDemo2 { public static void main(String[] args) throws IOException{ //將傳入的路徑標記爲了一個file對象 File file = new File("E:\\test"); //刪除文件file對象對應的文件 boolean b1 = file.delete(); System.out.println(b1); } }
運行結果:
true
此時,file 對象指向的文件被刪除。
一、刪除文件或者目錄的過程是不可逆的
二、刪除目錄時,要求目錄必須是空目錄
import java.io.File; import java.io.IOException; public class FileDemo2 { public static void main(String[] args) throws IOException{ //將傳入的路徑標記爲了一個file對象 File file = new File("E:\\test"); //建立一層目錄 boolean b = file.mkdir(); System.out.println(b); } }
運行結果:
注意:
一、當且僅當這個目錄不存在的時候纔會建立
二、只能建立一層目錄
import java.io.File; import java.io.IOException; public class FileDemo2 { public static void main(String[] args) throws IOException{ //將傳入的路徑標記爲了一個file對象 File file = new File("E:\\test\\cjj\\lnn"); //建立多層目錄 boolean b = file.mkdirs(); System.out.println(b); } }
運行結果: