W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.io.File
public class File
extends Object
implements Serializable, Comparable<File>
文件和目錄路徑名的抽象表示。
用戶界面和操作系統(tǒng)使用系統(tǒng)相關(guān)的路徑名字符串來(lái)命名文件和目錄。 此類呈現(xiàn)分層路徑名的抽象的、與系統(tǒng)無(wú)關(guān)的視圖。 抽象路徑名有兩個(gè)組成部分:
抽象路徑名中的第一個(gè)名稱可以是目錄名,或者在 Microsoft Windows UNC 路徑名的情況下,可以是主機(jī)名。 抽象路徑名中的每個(gè)后續(xù)名稱都表示一個(gè)目錄; 姓氏可以表示目錄或文件。 空抽象路徑名沒(méi)有前綴和空名稱序列。
路徑名字符串與抽象路徑名之間的轉(zhuǎn)換本質(zhì)上是系統(tǒng)相關(guān)的。 將抽象路徑名轉(zhuǎn)換為路徑名字符串時(shí),每個(gè)名稱與下一個(gè)名稱由默認(rèn)分隔符的單個(gè)副本分隔。 默認(rèn)名稱分隔符由系統(tǒng)屬性 file.separator 定義,并且在此類的公共靜態(tài)字段 separator 和 separatorChar 中可用。 當(dāng)路徑名字符串轉(zhuǎn)換為抽象路徑名時(shí),其中的名稱可以由默認(rèn)名稱分隔符或底層系統(tǒng)支持的任何其他名稱分隔符分隔。
路徑名,無(wú)論是抽象的還是字符串形式的,都可以是絕對(duì)的或相對(duì)的。 絕對(duì)路徑名是完整的,因?yàn)椴恍枰渌畔?lái)定位它表示的文件。 相反,相對(duì)路徑名必須根據(jù)從其他路徑名獲取的信息來(lái)解釋。 默認(rèn)情況下,java.io 包中的類總是根據(jù)當(dāng)前用戶目錄解析相對(duì)路徑名。 此目錄由系統(tǒng)屬性 user.dir 命名,通常是調(diào)用 Java 虛擬機(jī)的目錄。
抽象路徑名的父級(jí)可以通過(guò)調(diào)用此類的 getParent() 方法獲得,它由路徑名的前綴和路徑名名稱序列中除最后一個(gè)以外的每個(gè)名稱組成。 每個(gè)目錄的絕對(duì)路徑名是任何具有絕對(duì)抽象路徑名的 File 對(duì)象的祖先,該絕對(duì)抽象路徑名以目錄的絕對(duì)路徑名開頭。 例如,抽象路徑名“/usr”表示的目錄是路徑名“/usr/local/bin”表示的目錄的祖先。
前綴概念用于處理 UNIX 平臺(tái)上的根目錄,以及 Microsoft Windows 平臺(tái)上的驅(qū)動(dòng)器說(shuō)明符、根目錄和 UNC 路徑名,如下所示:
此類的實(shí)例可能表示也可能不表示實(shí)際的文件系統(tǒng)對(duì)象,例如文件或目錄。 如果它確實(shí)表示這樣的對(duì)象,則該對(duì)象駐留在分區(qū)中。 分區(qū)是文件系統(tǒng)的特定于操作系統(tǒng)的存儲(chǔ)部分。 單個(gè)存儲(chǔ)設(shè)備(例如物理磁盤驅(qū)動(dòng)器、閃存、CD-ROM)可能包含多個(gè)分區(qū)。 該對(duì)象(如果有)將駐留在此路徑名的絕對(duì)形式的某個(gè)祖先命名的分區(qū)上。
文件系統(tǒng)可以對(duì)實(shí)際文件系統(tǒng)對(duì)象的某些操作實(shí)施限制,例如讀取、寫入和執(zhí)行。這些限制統(tǒng)稱為訪問(wèn)權(quán)限。文件系統(tǒng)可能對(duì)單個(gè)對(duì)象具有多組訪問(wèn)權(quán)限。例如,一組可能適用于對(duì)象的所有者,而另一組可能適用于所有其他用戶。對(duì)象的訪問(wèn)權(quán)限可能會(huì)導(dǎo)致此類中的某些方法失敗。
File 類的實(shí)例是不可變的;也就是說(shuō),一旦創(chuàng)建,由 File 對(duì)象表示的抽象路徑名永遠(yuǎn)不會(huì)改變。
與 java.nio.file 包的互操作性
java.nio.file 包定義了 Java 虛擬機(jī)訪問(wèn)文件、文件屬性和文件系統(tǒng)的接口和類。此 API 可用于克服 java.io.File 類的許多限制。 toPath 方法可用于獲取使用 File 對(duì)象表示的抽象路徑來(lái)定位文件的 Path。生成的 Path 可以與 Files 類一起使用,以提供對(duì)其他文件操作、文件屬性和 I/O 異常的更有效和更廣泛的訪問(wèn),以幫助在對(duì)文件的操作失敗時(shí)診斷錯(cuò)誤。
Since:
JDK1.0
修飾符和類型 | 字段 | 描述 |
---|---|---|
static String | pathSeparator | 系統(tǒng)相關(guān)的路徑分隔符,為方便起見表示為字符串。 |
static char | pathSeparatorChar | 系統(tǒng)相關(guān)的路徑分隔符字符。 |
static String | separator | 系統(tǒng)相關(guān)的默認(rèn)名稱分隔符,為方便起見表示為字符串。 |
static char | separatorChar | 系統(tǒng)相關(guān)的默認(rèn)名稱分隔符。 |
構(gòu)造函數(shù) | 描述 |
---|---|
File(File parent, String child) | 從父抽象路徑名和子路徑名字符串創(chuàng)建一個(gè)新的 File 實(shí)例。 |
File(String pathname) | 通過(guò)將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建一個(gè)新的 File 實(shí)例。 |
File(String parent, String child) | 從父路徑名字符串和子路徑名字符串創(chuàng)建一個(gè)新的 File 實(shí)例。 |
File(URI uri) | 通過(guò)將給定的 file: URI 轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建一個(gè)新的 File 實(shí)例。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
boolean | canExecute() | 測(cè)試應(yīng)用程序是否可以執(zhí)行此抽象路徑名表示的文件。 |
boolean | canRead() | 測(cè)試應(yīng)用程序是否可以讀取此抽象路徑名表示的文件。 |
boolean | canWrite() | 測(cè)試應(yīng)用程序是否可以修改此抽象路徑名表示的文件。 |
int | compareTo(File pathname) | 按字典順序比較兩個(gè)抽象路徑名。 |
boolean | createNewFile() | 當(dāng)且僅當(dāng)具有此名稱的文件尚不存在時(shí),以原子方式創(chuàng)建以此抽象路徑名命名的新的空文件。 |
static File | createTempFile(String prefix, String suffix) | 在默認(rèn)臨時(shí)文件目錄中創(chuàng)建一個(gè)空文件,使用給定的前綴和后綴生成其名稱。 |
static File | createTempFile(String prefix, String suffix, File directory) | 在指定目錄中創(chuàng)建一個(gè)新的空文件,使用給定的前綴和后綴字符串生成其名稱。 |
boolean | delete() | 刪除此抽象路徑名表示的文件或目錄。 |
void | deleteOnExit() | 請(qǐng)求在虛擬機(jī)終止時(shí)刪除此抽象路徑名表示的文件或目錄。 |
boolean | equals(Object obj) | 測(cè)試此抽象路徑名是否與給定對(duì)象相等。 |
boolean | exists() | 測(cè)試此抽象路徑名表示的文件或目錄是否存在。 |
File | getAbsoluteFile() | 返回此抽象路徑名的絕對(duì)形式。 |
String | getAbsolutePath() | 返回此抽象路徑名的絕對(duì)路徑名字符串。 |
File | getCanonicalFile() | 返回此抽象路徑名的規(guī)范形式。 |
String | getCanonicalPath() | 返回此抽象路徑名的規(guī)范路徑名字符串。 |
long | getFreeSpace() | 返回由此抽象路徑名命名的分區(qū)中未分配的字節(jié)數(shù)。 |
String | getName() | 返回此抽象路徑名表示的文件或目錄的名稱。 |
String | getParent() | 返回此抽象路徑名的父目錄的路徑名字符串,如果此路徑名未命名父目錄,則返回 null。 |
File | getParentFile() | 返回此抽象路徑名的父級(jí)的抽象路徑名,如果此路徑名未命名父目錄,則返回 null。 |
String | getPath() | 將此抽象路徑名轉(zhuǎn)換為路徑名字符串。 |
long | getTotalSpace() | 返回由此抽象路徑名命名的分區(qū)的大小。 |
long | getUsableSpace() | 返回此抽象路徑名命名的分區(qū)上此虛擬機(jī)可用的字節(jié)數(shù)。 |
int | hashCode() | 計(jì)算此抽象路徑名的哈希碼。 |
boolean | isAbsolute() | 測(cè)試此抽象路徑名是否是絕對(duì)的。 |
boolean | isDirectory() | 測(cè)試此抽象路徑名表示的文件是否為目錄。 |
boolean | isFile() | 測(cè)試此抽象路徑名表示的文件是否為普通文件。 |
boolean | isHidden() | 測(cè)試此抽象路徑名命名的文件是否為隱藏文件。 |
long | lastModified() | 返回此抽象路徑名表示的文件最后一次修改的時(shí)間。 |
long | length() | 返回此抽象路徑名表示的文件的長(zhǎng)度。 |
String[] | list() | 返回一個(gè)字符串?dāng)?shù)組,命名此抽象路徑名表示的目錄中的文件和目錄。 |
String[] | list(FilenameFilter filter) | 返回一個(gè)字符串?dāng)?shù)組,命名由該抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。 |
File[] | listFiles() | 返回一個(gè)抽象路徑名數(shù)組,表示此抽象路徑名表示的目錄中的文件。 |
File[] | listFiles(FileFilter filter) | 返回一個(gè)抽象路徑名數(shù)組,表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。 |
File[] | listFiles(FilenameFilter filter) | 返回一個(gè)抽象路徑名數(shù)組,表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。 |
static File[] | listRoots() | 列出可用的文件系統(tǒng)根。 |
boolean | mkdir() | 創(chuàng)建由此抽象路徑名命名的目錄。 |
boolean | mkdirs() | 創(chuàng)建由此抽象路徑名命名的目錄,包括任何必要但不存在的父目錄。 |
boolean | renameTo(File dest) | 重命名此抽象路徑名表示的文件。 |
boolean | setExecutable(boolean executable) | 設(shè)置此抽象路徑名的所有者執(zhí)行權(quán)限的便捷方法。 |
boolean | setExecutable(boolean executable, boolean ownerOnly) | 設(shè)置此抽象路徑名的所有者或所有人的執(zhí)行權(quán)限。 |
boolean | setLastModified(long time) | 設(shè)置由此抽象路徑名命名的文件或目錄的最后修改時(shí)間。 |
boolean | setReadable(boolean readable) | 設(shè)置所有者對(duì)此抽象路徑名的讀取權(quán)限的便捷方法。 |
boolean | setReadable(boolean readable, boolean ownerOnly) | 設(shè)置此抽象路徑名的所有者或所有人的讀取權(quán)限。 |
boolean | setReadOnly() | 標(biāo)記由此抽象路徑名命名的文件或目錄,以便只允許讀取操作。 |
boolean | setWritable(boolean writable) | 設(shè)置所有者對(duì)此抽象路徑名的寫權(quán)限的便捷方法。 |
boolean | setWritable(boolean writable, boolean ownerOnly) | 設(shè)置此抽象路徑名的所有者或所有人的寫權(quán)限。 |
Path | toPath() | 返回從 this 抽象路徑構(gòu)造的 Path 對(duì)象。 |
String | toString() | 返回此抽象路徑名的路徑名字符串。 |
URI | toURI() | 構(gòu)造一個(gè)文件:表示此抽象路徑名的 URI。 |
URL | toURL() | 已棄用。 此方法不會(huì)自動(dòng)轉(zhuǎn)義 URL 中的非法字符。 建議新代碼將抽象路徑名轉(zhuǎn)換為 URL,首先通過(guò) toURI 方法將其轉(zhuǎn)換為 URI,然后通過(guò) URI.toURL 方法將 URI 轉(zhuǎn)換為 URL。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
public static final String pathSeparator
系統(tǒng)相關(guān)的路徑分隔符,為方便起見表示為字符串。 該字符串包含單個(gè)字符,即 pathSeparatorChar。
public static final char pathSeparatorChar
系統(tǒng)相關(guān)的路徑分隔符字符。 該字段被初始化為包含系統(tǒng)屬性 path.separator 值的第一個(gè)字符。 此字符用于分隔作為路徑列表給出的文件序列中的文件名。 在 UNIX 系統(tǒng)上,這個(gè)字符是 ':'; 在 Microsoft Windows 系統(tǒng)上它是 ';'。
public static final String separator
系統(tǒng)相關(guān)的默認(rèn)名稱分隔符,為方便起見表示為字符串。 該字符串包含單個(gè)字符,即 separatorChar。
public static final char separatorChar
系統(tǒng)相關(guān)的默認(rèn)名稱分隔符。 該字段被初始化為包含系統(tǒng)屬性 file.separator 值的第一個(gè)字符。 在 UNIX 系統(tǒng)上,該字段的值為 '/'; 在 Microsoft Windows 系統(tǒng)上它是 ''。
public File(String pathname)
通過(guò)將給定的路徑名字符串轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建一個(gè)新的 File 實(shí)例。 如果給定的字符串是空字符串,則結(jié)果是空的抽象路徑名。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pathname | 路徑名字符串 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果路徑名參數(shù)為空 |
public File(String parent, String child)
從父路徑名字符串和子路徑名字符串創(chuàng)建一個(gè)新的 File 實(shí)例。
如果 parent 為 null,則創(chuàng)建新的 File 實(shí)例,就好像通過(guò)在給定的子路徑名字符串上調(diào)用單參數(shù) File 構(gòu)造函數(shù)一樣。
否則,父路徑名字符串被用來(lái)表示目錄,而子路徑名字符串被用來(lái)表示目錄或文件。 如果子路徑名字符串是絕對(duì)的,那么它將以系統(tǒng)相關(guān)的方式轉(zhuǎn)換為相對(duì)路徑名。 如果 parent 是空字符串,則通過(guò)將 child 轉(zhuǎn)換為抽象路徑名并根據(jù)系統(tǒng)相關(guān)的默認(rèn)目錄解析結(jié)果來(lái)創(chuàng)建新的 File 實(shí)例。 否則,每個(gè)路徑名字符串都將轉(zhuǎn)換為抽象路徑名,并且子抽象路徑名將針對(duì)父級(jí)解析。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
parent | 父路徑名字符串 |
child | 子路徑名字符串 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 child 為空 |
public File(File parent, String child)
從父抽象路徑名和子路徑名字符串創(chuàng)建一個(gè)新的 File 實(shí)例。
如果 parent 為 null,則創(chuàng)建新的 File 實(shí)例,就好像通過(guò)在給定的子路徑名字符串上調(diào)用單參數(shù) File 構(gòu)造函數(shù)一樣。
否則,父抽象路徑名被用來(lái)表示一個(gè)目錄,而子路徑名字符串被用來(lái)表示一個(gè)目錄或一個(gè)文件。 如果子路徑名字符串是絕對(duì)的,那么它將以系統(tǒng)相關(guān)的方式轉(zhuǎn)換為相對(duì)路徑名。 如果 parent 是空的抽象路徑名,則通過(guò)將 child 轉(zhuǎn)換為抽象路徑名并根據(jù)系統(tǒng)相關(guān)的默認(rèn)目錄解析結(jié)果來(lái)創(chuàng)建新的 File 實(shí)例。 否則,每個(gè)路徑名字符串都將轉(zhuǎn)換為抽象路徑名,并且子抽象路徑名將針對(duì)父級(jí)解析。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
parent | 父抽象路徑名 |
child | 子路徑名字符串 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 child 為空 |
public File(URI uri)
通過(guò)將給定的 file: URI 轉(zhuǎn)換為抽象路徑名來(lái)創(chuàng)建一個(gè)新的 File 實(shí)例。
文件的確切形式:URI 是系統(tǒng)相關(guān)的,因此此構(gòu)造函數(shù)執(zhí)行的轉(zhuǎn)換也是系統(tǒng)相關(guān)的。
對(duì)于給定的抽象路徑名 f,保證
新文件(f.toURI()).equals(f.getAbsoluteFile())
只要原始抽象路徑名、URI 和新的抽象路徑名都是在同一個(gè) Java 虛擬機(jī)中創(chuàng)建的(可能是不同的調(diào)用)。 但是,當(dāng)文件:在一個(gè)操作系統(tǒng)上的虛擬機(jī)中創(chuàng)建的 URI 被轉(zhuǎn)換為不同操作系統(tǒng)上的虛擬機(jī)中的抽象路徑名時(shí),這種關(guān)系通常不成立。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
uri | 一個(gè)絕對(duì)的、分層的 URI,其方案等于“文件”、一個(gè)非空路徑組件以及未定義的權(quán)限、查詢和片段組件 |
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 uri 為空 |
IllegalArgumentException | 如果參數(shù)的前提條件不成立 |
Since:
1.4
public String getName()
返回此抽象路徑名表示的文件或目錄的名稱。 這只是路徑名的名稱序列中的最后一個(gè)名稱。 如果路徑名的名稱序列為空,則返回空字符串。
返回:
此抽象路徑名表示的文件或目錄的名稱,如果此路徑名的名稱序列為空,則為空字符串
public String getParent()
返回此抽象路徑名的父目錄的路徑名字符串,如果此路徑名未命名父目錄,則返回 null。
抽象路徑名的父級(jí)由路徑名的前綴(如果有)和路徑名的名稱序列中除最后一個(gè)以外的每個(gè)名稱組成。 如果名稱序列為空,則路徑名不命名父目錄。
返回:
此抽象路徑名命名的父目錄的路徑名字符串,如果此路徑名未命名父目錄,則為 null
public File getParentFile()
返回此抽象路徑名的父級(jí)的抽象路徑名,如果此路徑名未命名父目錄,則返回 null。
抽象路徑名的父級(jí)由路徑名的前綴(如果有)和路徑名的名稱序列中除最后一個(gè)以外的每個(gè)名稱組成。 如果名稱序列為空,則路徑名不命名父目錄。
返回:
此抽象路徑名命名的父目錄的抽象路徑名,如果此路徑名未命名父目錄,則為 null
Since:
1.2
public String getPath()
將此抽象路徑名轉(zhuǎn)換為路徑名字符串。 生成的字符串使用默認(rèn)的名稱分隔符來(lái)分隔名稱序列中的名稱。
返回:
此抽象路徑名的字符串形式
public boolean isAbsolute()
測(cè)試此抽象路徑名是否是絕對(duì)的。 絕對(duì)路徑名的定義取決于系統(tǒng)。 在 UNIX 系統(tǒng)上,如果前綴為“/”,則路徑名是絕對(duì)路徑名。 在 Microsoft Windows 系統(tǒng)上,如果路徑名的前綴是驅(qū)動(dòng)器說(shuō)明符后跟“”,或者其前綴是“”,則路徑名是絕對(duì)路徑名。
返回:
如果此抽象路徑名是絕對(duì)的,則為 true,否則為 false
public String getAbsolutePath()
返回此抽象路徑名的絕對(duì)路徑名字符串。
如果這個(gè)抽象路徑名已經(jīng)是絕對(duì)的,那么路徑名字符串就像 getPath() 方法一樣簡(jiǎn)單地返回。 如果此抽象路徑名是空的抽象路徑名,則返回當(dāng)前用戶目錄的路徑名字符串,該路徑名由系統(tǒng)屬性 user.dir 命名。 否則,此路徑名將以系統(tǒng)相關(guān)的方式解析。 在 UNIX 系統(tǒng)上,通過(guò)根據(jù)當(dāng)前用戶目錄解析相對(duì)路徑名,使其成為絕對(duì)路徑名。 在 Microsoft Windows 系統(tǒng)上,通過(guò)將相對(duì)路徑名解析為由路徑名命名的驅(qū)動(dòng)器的當(dāng)前目錄(如果有),從而使相對(duì)路徑名成為絕對(duì)路徑; 如果不是,則針對(duì)當(dāng)前用戶目錄進(jìn)行解析。
返回:
表示與此抽象路徑名相同的文件或目錄的絕對(duì)路徑名字符串
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果無(wú)法訪問(wèn)所需的系統(tǒng)屬性值。 |
public File getAbsoluteFile()
返回此抽象路徑名的絕對(duì)形式。 等效于新文件(this.getAbsolutePath())。
返回:
表示與此抽象路徑名相同的文件或目錄的絕對(duì)抽象路徑名
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果無(wú)法訪問(wèn)所需的系統(tǒng)屬性值。 |
Since:
1.2
public String getCanonicalPath() throws IOException
返回此抽象路徑名的規(guī)范路徑名字符串。
規(guī)范路徑名是絕對(duì)且唯一的。規(guī)范形式的精確定義取決于系統(tǒng)。如果需要,此方法首先將此路徑名轉(zhuǎn)換為絕對(duì)形式,就像調(diào)用 getAbsolutePath() 方法一樣,然后以系統(tǒng)相關(guān)的方式將其映射到其唯一形式。這通常涉及刪除冗余名稱,例如“?!焙吐窂矫械摹?.”,解析符號(hào)鏈接(在 UNIX 平臺(tái)上),并將驅(qū)動(dòng)器號(hào)轉(zhuǎn)換為標(biāo)準(zhǔn)大小寫(在 Microsoft Windows 平臺(tái)上)。
每個(gè)表示現(xiàn)有文件或目錄的路徑名都有唯一的規(guī)范形式。每個(gè)表示不存在的文件或目錄的路徑名也具有唯一的規(guī)范形式。不存在的文件或目錄的路徑名的規(guī)范形式可能與創(chuàng)建文件或目錄后相同路徑名的規(guī)范形式不同。類似地,現(xiàn)有文件或目錄的路徑名的規(guī)范形式可能與刪除文件或目錄后相同路徑名的規(guī)范形式不同。
返回:
表示與此抽象路徑名相同的文件或目錄的規(guī)范路徑名字符串
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤,這是可能的,因?yàn)橐?guī)范路徑名的構(gòu)造可能需要文件系統(tǒng)查詢 |
SecurityException | 如果無(wú)法訪問(wèn)所需的系統(tǒng)屬性值,或者安全管理器存在且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒絕讀取文件 |
Since:
JDK1.1
public File getCanonicalFile() throws IOException
返回此抽象路徑名的規(guī)范形式。 等效于新文件(this.getCanonicalPath())。
返回:
表示與此抽象路徑名相同的文件或目錄的規(guī)范路徑名字符串
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤,這是可能的,因?yàn)橐?guī)范路徑名的構(gòu)造可能需要文件系統(tǒng)查詢 |
SecurityException | 如果無(wú)法訪問(wèn)所需的系統(tǒng)屬性值,或者安全管理器存在且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒絕讀取文件 |
Since:
1.2
@Deprecated public URL toURL() throws MalformedURLException
已棄用。 此方法不會(huì)自動(dòng)轉(zhuǎn)義 URL 中的非法字符。 建議新代碼將抽象路徑名轉(zhuǎn)換為 URL,首先通過(guò) toURI 方法將其轉(zhuǎn)換為 URI,然后通過(guò) URI.toURL 方法將 URI 轉(zhuǎn)換為 URL。
將此抽象路徑名轉(zhuǎn)換為文件:URL。 URL 的確切形式取決于系統(tǒng)。 如果可以確定此抽象路徑名表示的文件是目錄,則生成的 URL 將以斜杠結(jié)尾。
返回:
表示等效文件 URL 的 URL 對(duì)象
Throws:
Throw名稱 | Throw描述 |
---|---|
MalformedURLException | 如果路徑無(wú)法解析為 URL |
Since:
1.2
public URI toURI()
構(gòu)造一個(gè)文件:表示此抽象路徑名的 URI。
URI 的確切形式取決于系統(tǒng)。如果可以確定此抽象路徑名表示的文件是目錄,則生成的 URI 將以斜杠結(jié)尾。
對(duì)于給定的抽象路徑名 f,保證
new File( f.toURI()).equals( f.getAbsoluteFile())
只要原始抽象路徑名、URI 和新的抽象路徑名都是在同一個(gè) Java 虛擬機(jī)中創(chuàng)建的(可能是不同的調(diào)用)。但是,由于抽象路徑名的系統(tǒng)相關(guān)性,當(dāng)一個(gè)文件:在一個(gè)操作系統(tǒng)上的虛擬機(jī)中創(chuàng)建的 URI 被轉(zhuǎn)換為不同操作系統(tǒng)上的虛擬機(jī)中的抽象路徑名時(shí),這種關(guān)系通常不成立.
請(qǐng)注意,當(dāng)此抽象路徑名表示 UNC 路徑名時(shí),UNC 的所有組件(包括服務(wù)器名稱組件)都在 URI 路徑中進(jìn)行編碼。權(quán)限組件是未定義的,這意味著它表示為空。 Path 類定義了 Path#toUri 方法以在生成的 URI 的授權(quán)組件中對(duì)服務(wù)器名稱進(jìn)行編碼。 toPath 方法可用于獲取表示此抽象路徑名的 Path。
返回:
具有等于“文件”的方案的絕對(duì)分層 URI、表示此抽象路徑名的路徑以及未定義的權(quán)限、查詢和片段組件
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果無(wú)法訪問(wèn)所需的系統(tǒng)屬性值。 |
Since:
1.4
public boolean canRead()
測(cè)試應(yīng)用程序是否可以讀取此抽象路徑名表示的文件。 在某些平臺(tái)上,可以使用特殊權(quán)限啟動(dòng) Java 虛擬機(jī),使其能夠讀取標(biāo)記為不可讀的文件。 因此,即使文件沒(méi)有讀取權(quán)限,此方法也可能返回 true。
返回:
當(dāng)且僅當(dāng)此抽象路徑名指定的文件存在并且應(yīng)用程序可以讀取時(shí),才為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件的讀取訪問(wèn)權(quán)限 |
public boolean canWrite()
測(cè)試應(yīng)用程序是否可以修改此抽象路徑名表示的文件。 在某些平臺(tái)上,可以使用允許它修改標(biāo)記為只讀的文件的特殊權(quán)限啟動(dòng) Java 虛擬機(jī)。 因此,即使文件被標(biāo)記為只讀,此方法也可能返回 true。
返回:
當(dāng)且僅當(dāng)文件系統(tǒng)實(shí)際上包含由此抽象路徑名表示的文件并且允許應(yīng)用程序?qū)懭朐撐募r(shí),才返回 true; 否則為 false。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
public boolean exists()
測(cè)試此抽象路徑名表示的文件或目錄是否存在。
返回:
當(dāng)且僅當(dāng)此抽象路徑名表示的文件或目錄存在時(shí)才為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件或目錄的讀取訪問(wèn)權(quán)限 |
public boolean isDirectory()
測(cè)試此抽象路徑名表示的文件是否為目錄。
如果需要將 I/O 異常與文件不是目錄的情況進(jìn)行區(qū)分,或者同時(shí)需要同一文件的多個(gè)屬性,則可以使用 Files.readAttributes 方法。
返回:
當(dāng)且僅當(dāng)此抽象路徑名表示的文件存在并且是目錄時(shí)才為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件的讀取訪問(wèn)權(quán)限 |
public boolean isFile()
測(cè)試此抽象路徑名表示的文件是否為普通文件。 如果文件不是目錄,并且滿足其他系統(tǒng)相關(guān)標(biāo)準(zhǔn),則該文件是正常的。 Java 應(yīng)用程序創(chuàng)建的任何非目錄文件都保證是普通文件。
如果需要區(qū)分 I/O 異常和文件不是普通文件的情況,或者同時(shí)需要同一文件的多個(gè)屬性,則可以使用 Files.readAttributes 方法。
返回:
當(dāng)且僅當(dāng)此抽象路徑名表示的文件存在并且是普通文件時(shí)才為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件的讀取訪問(wèn)權(quán)限 |
public boolean isHidden()
測(cè)試此抽象路徑名命名的文件是否為隱藏文件。 隱藏的確切定義取決于系統(tǒng)。 在 UNIX 系統(tǒng)上,如果文件名以句點(diǎn)字符 ('.') 開頭,則文件被認(rèn)為是隱藏的。 在 Microsoft Windows 系統(tǒng)上,如果文件在文件系統(tǒng)中被標(biāo)記為隱藏文件,則該文件被視為隱藏文件。
返回:
當(dāng)且僅當(dāng)此抽象路徑名表示的文件根據(jù)底層平臺(tái)的約定被隱藏時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件的讀取訪問(wèn)權(quán)限 |
Since:
1.2
public long lastModified()
返回此抽象路徑名表示的文件最后一次修改的時(shí)間。
如果需要區(qū)分 I/O 異常和返回 0L 的情況,或者同時(shí)需要同一文件的多個(gè)屬性,或者需要最后訪問(wèn)時(shí)間或創(chuàng)建時(shí)間的情況,則 可以使用 Files.readAttributes 方法。
返回:
表示文件最后修改時(shí)間的長(zhǎng)值,以自紀(jì)元(格林威治標(biāo)準(zhǔn)時(shí)間 00:00:00,1970 年 1 月 1 日)以來(lái)的毫秒數(shù)為單位,如果文件不存在或發(fā)生 I/O 錯(cuò)誤,則為 0L
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件的讀取訪問(wèn)權(quán)限 |
public long length()
返回此抽象路徑名表示的文件的長(zhǎng)度。 如果此路徑名表示目錄,則返回值未指定。
如果需要區(qū)分 I/O 異常和返回 0L 的情況,或者同時(shí)需要同一文件的多個(gè)屬性,則可以使用 Files.readAttributes 方法。
返回:
此抽象路徑名表示的文件的長(zhǎng)度(以字節(jié)為單位),如果文件不存在,則為 0L。 對(duì)于表示系統(tǒng)相關(guān)實(shí)體(例如設(shè)備或管道)的路徑名,某些操作系統(tǒng)可能會(huì)返回 0L。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒絕對(duì)文件的讀取訪問(wèn)權(quán)限 |
public boolean createNewFile() throws IOException
當(dāng)且僅當(dāng)具有此名稱的文件尚不存在時(shí),以原子方式創(chuàng)建以此抽象路徑名命名的新的空文件。 檢查文件是否存在以及如果文件不存在則創(chuàng)建文件是單個(gè)操作,相對(duì)于可能影響文件的所有其他文件系統(tǒng)活動(dòng)而言是原子操作。
注意:此方法不應(yīng)用于文件鎖定,因?yàn)樯傻膮f(xié)議不能可靠地工作。 應(yīng)該改用 FileLock 工具。
返回:
如果命名文件不存在且已成功創(chuàng)建,則為 true; 如果命名文件已經(jīng)存在,則返回 false
Throws:
Throw每次 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
Since:
1.2
public boolean delete()
刪除此抽象路徑名表示的文件或目錄。 如果此路徑名表示一個(gè)目錄,則該目錄必須為空才能被刪除。
請(qǐng)注意,F(xiàn)iles 類定義了 delete 方法以在無(wú)法刪除文件時(shí)拋出 IOException。 這對(duì)于錯(cuò)誤報(bào)告和診斷無(wú)法刪除文件的原因很有用。
返回:
當(dāng)且僅當(dāng)文件或目錄被成功刪除時(shí)為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkDelete(java.lang.String) 方法拒絕刪除對(duì)文件的訪問(wèn)權(quán)限 |
public void deleteOnExit()
請(qǐng)求在虛擬機(jī)終止時(shí)刪除此抽象路徑名表示的文件或目錄。 文件(或目錄)的刪除順序與注冊(cè)時(shí)相反。 調(diào)用此方法刪除已注冊(cè)刪除的文件或目錄無(wú)效。 按照 Java 語(yǔ)言規(guī)范的定義,僅在虛擬機(jī)正常終止時(shí)才會(huì)嘗試刪除。
一旦請(qǐng)求刪除,就無(wú)法取消請(qǐng)求。 因此,應(yīng)謹(jǐn)慎使用此方法。
注意:此方法不應(yīng)用于文件鎖定,因?yàn)樯傻膮f(xié)議不能可靠地工作。 應(yīng)該改用 FileLock 工具。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkDelete(java.lang.String) 方法拒絕刪除對(duì)文件的訪問(wèn)權(quán)限 |
Since:
1.2
public String[] list()
返回一個(gè)字符串?dāng)?shù)組,命名此抽象路徑名表示的目錄中的文件和目錄。
如果此抽象路徑名不表示目錄,則此方法返回 null。否則返回一個(gè)字符串?dāng)?shù)組,一個(gè)對(duì)應(yīng)于目錄中的每個(gè)文件或目錄。結(jié)果中不包括表示目錄本身和目錄父目錄的名稱。每個(gè)字符串都是一個(gè)文件名,而不是一個(gè)完整的路徑。
無(wú)法保證結(jié)果數(shù)組中的名稱字符串會(huì)以任何特定順序出現(xiàn);特別是,它們不能保證按字母順序出現(xiàn)。
請(qǐng)注意,F(xiàn)iles 類定義了 newDirectoryStream 方法來(lái)打開目錄并遍歷目錄中文件的名稱。在處理非常大的目錄時(shí),這可能會(huì)使用更少的資源,并且在處理遠(yuǎn)程目錄時(shí)可能會(huì)更敏感。
返回:
一個(gè)字符串?dāng)?shù)組,命名此抽象路徑名表示的目錄中的文件和目錄。如果目錄為空,則數(shù)組將為空。如果此抽象路徑名不表示目錄,或者發(fā)生 I/O 錯(cuò)誤,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkRead(String) 方法拒絕對(duì)目錄的讀取訪問(wèn)權(quán)限 |
public String[] list(FilenameFilter filter)
返回一個(gè)字符串?dāng)?shù)組,命名由該抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。 此方法的行為與 list() 方法的行為相同,只是返回?cái)?shù)組中的字符串必須滿足過(guò)濾器。 如果給定的過(guò)濾器為空,則接受所有名稱。 否則,當(dāng)且僅當(dāng)在此抽象路徑名和它所表示的目錄中的文件或目錄的名稱上調(diào)用過(guò)濾器的 FilenameFilter#accept 方法時(shí)結(jié)果值為 true 時(shí),名稱才滿足過(guò)濾器。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
filter | 文件名過(guò)濾器 |
返回:
一個(gè)字符串?dāng)?shù)組,命名由給定過(guò)濾器接受的此抽象路徑名表示的目錄中的文件和目錄。 如果目錄為空或過(guò)濾器不接受任何名稱,則數(shù)組將為空。 如果此抽象路徑名不表示目錄,或者發(fā)生 I/O 錯(cuò)誤,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkRead(String) 方法拒絕對(duì)目錄的讀取訪問(wèn)權(quán)限 |
public File[] listFiles()
返回一個(gè)抽象路徑名數(shù)組,表示此抽象路徑名表示的目錄中的文件。
如果此抽象路徑名不表示目錄,則此方法返回 null。否則返回一個(gè) File 對(duì)象數(shù)組,一個(gè)對(duì)應(yīng)于目錄中的每個(gè)文件或目錄。結(jié)果中不包括表示目錄本身和目錄父目錄的路徑名。每個(gè)生成的抽象路徑名都是使用 File(File, String) 構(gòu)造函數(shù)從這個(gè)抽象路徑名構(gòu)造的。因此,如果這個(gè)路徑名是絕對(duì)的,那么每個(gè)生成的路徑名都是絕對(duì)的;如果此路徑名是相對(duì)的,則每個(gè)生成的路徑名都將相對(duì)于同一目錄。
無(wú)法保證結(jié)果數(shù)組中的名稱字符串會(huì)以任何特定順序出現(xiàn);特別是,它們不能保證按字母順序出現(xiàn)。
請(qǐng)注意,F(xiàn)iles 類定義了 newDirectoryStream 方法來(lái)打開目錄并遍歷目錄中文件的名稱。在處理非常大的目錄時(shí),這可能會(huì)使用更少的資源。
返回:
一組抽象路徑名,表示由該抽象路徑名表示的目錄中的文件和目錄。如果目錄為空,則數(shù)組將為空。如果此抽象路徑名不表示目錄,或者發(fā)生 I/O 錯(cuò)誤,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkRead(String) 方法拒絕對(duì)目錄的讀取訪問(wèn)權(quán)限 |
Since:
1.2
public File[] listFiles(FilenameFilter filter)
返回一個(gè)抽象路徑名數(shù)組,表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。 此方法的行為與 listFiles() 方法的行為相同,只是返回?cái)?shù)組中的路徑名必須滿足過(guò)濾器。 如果給定的過(guò)濾器為空,則接受所有路徑名。 否則,當(dāng)且僅當(dāng)在此抽象路徑名和它所表示的目錄中的文件或目錄的名稱上調(diào)用過(guò)濾器的 FilenameFilter#accept 方法時(shí)結(jié)果值為 true 時(shí),路徑名才滿足過(guò)濾器。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
filter | 文件名過(guò)濾器 |
返回:
一組抽象路徑名,表示由該抽象路徑名表示的目錄中的文件和目錄。 如果目錄為空,則數(shù)組將為空。 如果此抽象路徑名不表示目錄,或者發(fā)生 I/O 錯(cuò)誤,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkRead(String) 方法拒絕對(duì)目錄的讀取訪問(wèn)權(quán)限 |
Since:
1.2
public File[] listFiles(FileFilter filter)
返回一個(gè)抽象路徑名數(shù)組,表示此抽象路徑名表示的目錄中滿足指定過(guò)濾器的文件和目錄。 此方法的行為與 listFiles() 方法的行為相同,只是返回?cái)?shù)組中的路徑名必須滿足過(guò)濾器。 如果給定的過(guò)濾器為空,則接受所有路徑名。 否則,當(dāng)且僅當(dāng)在路徑名上調(diào)用過(guò)濾器的 FileFilter#accept 方法時(shí)結(jié)果為 true 時(shí),路徑名才滿足過(guò)濾器。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
filter | 文件過(guò)濾器 |
返回:
一組抽象路徑名,表示由該抽象路徑名表示的目錄中的文件和目錄。 如果目錄為空,則數(shù)組將為空。 如果此抽象路徑名不表示目錄,或者發(fā)生 I/O 錯(cuò)誤,則返回 null。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager#checkRead(String) 方法拒絕對(duì)目錄的讀取訪問(wèn)權(quán)限 |
Since:
1.2
public boolean mkdir()
創(chuàng)建由此抽象路徑名命名的目錄。
返回:
當(dāng)且僅當(dāng)目錄被創(chuàng)建時(shí)為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法不允許創(chuàng)建命名目錄 |
public boolean mkdirs()
創(chuàng)建由此抽象路徑名命名的目錄,包括任何必要但不存在的父目錄。 請(qǐng)注意,如果此操作失敗,它可能已成功創(chuàng)建一些必要的父目錄。
返回:
當(dāng)且僅當(dāng)創(chuàng)建了目錄以及所有必要的父目錄時(shí)才為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法不允許驗(yàn)證命名目錄和所有必要父目錄的存在; 或者如果 SecurityManager.checkWrite(java.lang.String) 方法不允許創(chuàng)建命名目錄和所有必要的父目錄 |
public boolean renameTo(File dest)
重命名此抽象路徑名表示的文件。
此方法行為的許多方面本質(zhì)上與平臺(tái)相關(guān):重命名操作可能無(wú)法將文件從一個(gè)文件系統(tǒng)移動(dòng)到另一個(gè)文件系統(tǒng),它可能不是原子的,并且如果文件具有目標(biāo)抽象路徑名,它可能不會(huì)成功 已經(jīng)存在。 應(yīng)始終檢查返回值以確保重命名操作成功。
請(qǐng)注意,F(xiàn)iles 類定義了 move 方法以獨(dú)立于平臺(tái)的方式移動(dòng)或重命名文件。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
dest | 命名文件的新抽象路徑名 |
返回:
當(dāng)且僅當(dāng)重命名成功時(shí)為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)舊路徑名或新路徑名的寫訪問(wèn) |
NullPointerException | 如果參數(shù) dest 為空 |
public boolean setLastModified(long time)
設(shè)置由此抽象路徑名命名的文件或目錄的最后修改時(shí)間。
所有平臺(tái)都支持精確到秒的文件修改時(shí)間,但有些平臺(tái)提供更高的精度。 該參數(shù)將被截?cái)嘁赃m應(yīng)支持的精度。 如果操作成功并且沒(méi)有對(duì)文件進(jìn)行干預(yù)操作,則 lastModified() 方法的下一次調(diào)用將返回傳遞給此方法的(可能被截?cái)嗟模r(shí)間參數(shù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
time | 新的最后修改時(shí)間,自紀(jì)元以來(lái)的毫秒數(shù)(格林威治標(biāo)準(zhǔn)時(shí)間 00:00:00,1970 年 1 月 1 日) |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果參數(shù)是否定的 |
SecurityException | 如果安全管理器存在并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)指定文件的寫訪問(wèn) |
Since:
1.2
public boolean setReadOnly()
標(biāo)記由此抽象路徑名命名的文件或目錄,以便只允許讀取操作。 調(diào)用此方法后,文件或目錄在被刪除或標(biāo)記為允許寫入訪問(wèn)之前不會(huì)更改。 在某些平臺(tái)上,可以使用允許它修改標(biāo)記為只讀的文件的特殊權(quán)限啟動(dòng) Java 虛擬機(jī)。 是否可以刪除只讀文件或目錄取決于底層系統(tǒng)。
返回:
當(dāng)且僅當(dāng)操作成功時(shí)為 true; 否則為 false
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)指定文件的寫訪問(wèn) |
Since:
1.2
public boolean setWritable(boolean writable, boolean ownerOnly)
設(shè)置此抽象路徑名的所有者或所有人的寫權(quán)限。 在某些平臺(tái)上,可以使用允許它修改不允許寫入操作的文件的特殊權(quán)限來(lái)啟動(dòng) Java 虛擬機(jī)。
Files 類定義了對(duì)文件屬性(包括文件權(quán)限)進(jìn)行操作的方法。 當(dāng)需要對(duì)文件權(quán)限進(jìn)行更精細(xì)的操作時(shí),可以使用此選項(xiàng)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
writable | 如果為 true,則設(shè)置訪問(wèn)權(quán)限以允許寫操作; 如果為 false 則禁止寫操作 |
ownerOnly | 如果為true,則寫權(quán)限僅適用于所有者的寫權(quán)限; 否則,它適用于所有人。 如果底層文件系統(tǒng)無(wú)法區(qū)分所有者的寫權(quán)限和其他人的寫權(quán)限,那么該權(quán)限將適用于每個(gè)人,而不管這個(gè)值是多少。 |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)才為 true。 如果用戶無(wú)權(quán)更改此抽象路徑名的訪問(wèn)權(quán)限,則操作將失敗。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)指定文件的寫訪問(wèn) |
Since:
1.6
public boolean setWritable(boolean writable)
設(shè)置所有者對(duì)此抽象路徑名的寫權(quán)限的便捷方法。 在某些平臺(tái)上,可以使用允許它修改不允許寫入操作的文件的特殊權(quán)限來(lái)啟動(dòng) Java 虛擬機(jī)。
以 file.setWritable(arg) 形式調(diào)用此方法的行為與調(diào)用完全相同
file.setWritable(arg, true)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
writable | 如果為 true,則設(shè)置訪問(wèn)權(quán)限以允許寫操作; 如果為 false 則禁止寫操作 |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)才為 true。 如果用戶無(wú)權(quán)更改此抽象路徑名的訪問(wèn)權(quán)限,則操作將失敗。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
Since:
1.6
public boolean setReadable(boolean readable, boolean ownerOnly)
設(shè)置此抽象路徑名的所有者或所有人的讀取權(quán)限。 在某些平臺(tái)上,可以使用特殊權(quán)限啟動(dòng) Java 虛擬機(jī),使其能夠讀取標(biāo)記為不可讀的文件。
Files 類定義了對(duì)文件屬性(包括文件權(quán)限)進(jìn)行操作的方法。 當(dāng)需要對(duì)文件權(quán)限進(jìn)行更精細(xì)的操作時(shí),可以使用此選項(xiàng)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
readable | 如果為 true,則設(shè)置訪問(wèn)權(quán)限以允許讀取操作; 如果為 false 則不允許讀取操作 |
ownerOnly | 如果為 true,則讀取權(quán)限僅適用于所有者的讀取權(quán)限; 否則,它適用于所有人。 如果底層文件系統(tǒng)無(wú)法區(qū)分所有者的讀取權(quán)限和其他人的讀取權(quán)限,則該權(quán)限將適用于所有人,無(wú)論此值如何。 |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)才為 true。 如果用戶無(wú)權(quán)更改此抽象路徑名的訪問(wèn)權(quán)限,則操作將失敗。 如果 readable 為 false 并且底層文件系統(tǒng)沒(méi)有實(shí)現(xiàn)讀權(quán)限,那么操作將失敗。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
Since:
1.6
public boolean setReadable(boolean readable)
設(shè)置所有者對(duì)此抽象路徑名的讀取權(quán)限的便捷方法。 在某些平臺(tái)上,可以使用特殊權(quán)限啟動(dòng) Java 虛擬機(jī),使其能夠讀取標(biāo)記為不可讀的文件。
調(diào)用這種形式為 file.setReadable(arg) 的方法的行為與調(diào)用完全相同
file.setReadable(arg, true)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
readable | 如果為 true,則設(shè)置訪問(wèn)權(quán)限以允許讀取操作; 如果為 false 則不允許讀取操作 |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)才為 true。 如果用戶無(wú)權(quán)更改此抽象路徑名的訪問(wèn)權(quán)限,則操作將失敗。 如果 readable 為 false 并且底層文件系統(tǒng)沒(méi)有實(shí)現(xiàn)讀權(quán)限,那么操作將失敗。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
Since:
1.6
public boolean setExecutable(boolean executable, boolean ownerOnly)
設(shè)置此抽象路徑名的所有者或所有人的執(zhí)行權(quán)限。 在某些平臺(tái)上,可以使用允許它執(zhí)行未標(biāo)記為可執(zhí)行文件的特殊權(quán)限來(lái)啟動(dòng) Java 虛擬機(jī)。
Files 類定義了對(duì)文件屬性(包括文件權(quán)限)進(jìn)行操作的方法。 當(dāng)需要對(duì)文件權(quán)限進(jìn)行更精細(xì)的操作時(shí),可以使用此選項(xiàng)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
executable | 如果為 true,則設(shè)置訪問(wèn)權(quán)限以允許執(zhí)行操作; 如果為 false 則不允許執(zhí)行操作 |
ownerOnly | 如果為 true,則執(zhí)行權(quán)限僅適用于所有者的執(zhí)行權(quán)限; 否則,它適用于所有人。 如果底層文件系統(tǒng)無(wú)法區(qū)分所有者的執(zhí)行權(quán)限和其他人的執(zhí)行權(quán)限,則該權(quán)限將適用于所有人,無(wú)論此值如何。 |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)才為 true。 如果用戶無(wú)權(quán)更改此抽象路徑名的訪問(wèn)權(quán)限,則操作將失敗。 如果 executable 為 false 并且底層文件系統(tǒng)沒(méi)有實(shí)現(xiàn)執(zhí)行權(quán)限,則操作將失敗。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
Since:
1.6
public boolean setExecutable(boolean executable)
設(shè)置此抽象路徑名的所有者執(zhí)行權(quán)限的便捷方法。 在某些平臺(tái)上,可以使用允許它執(zhí)行未標(biāo)記為可執(zhí)行文件的特殊權(quán)限來(lái)啟動(dòng) Java 虛擬機(jī)。
調(diào)用這種形式為 file.setExcutable(arg) 的方法的行為與調(diào)用完全相同
file.setExecutable(arg, true)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
executable | 如果為 true,則設(shè)置訪問(wèn)權(quán)限以允許執(zhí)行操作; 如果為 false 則不允許執(zhí)行操作 |
返回:
當(dāng)且僅當(dāng)操作成功時(shí)才為 true。 如果用戶無(wú)權(quán)更改此抽象路徑名的訪問(wèn)權(quán)限,則操作將失敗。 如果 executable 為 false 并且底層文件系統(tǒng)沒(méi)有實(shí)現(xiàn)執(zhí)行權(quán)限,則操作將失敗。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法拒絕對(duì)文件的寫訪問(wèn) |
Since:
1.6
public boolean canExecute()
測(cè)試應(yīng)用程序是否可以執(zhí)行此抽象路徑名表示的文件。 在某些平臺(tái)上,可以使用允許它執(zhí)行未標(biāo)記為可執(zhí)行文件的特殊權(quán)限來(lái)啟動(dòng) Java 虛擬機(jī)。 因此,即使文件沒(méi)有執(zhí)行權(quán)限,此方法也可能返回 true。
返回:
當(dāng)且僅當(dāng)抽象路徑名存在并且允許應(yīng)用程序執(zhí)行文件時(shí)才為 true
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且其 SecurityManager.checkExec(java.lang.String) 方法拒絕執(zhí)行對(duì)文件的訪問(wèn) |
Since:
1.6
public static File[] listRoots()
列出可用的文件系統(tǒng)根。
一個(gè)特定的 Java 平臺(tái)可能支持零個(gè)或多個(gè)分層組織的文件系統(tǒng)。每個(gè)文件系統(tǒng)都有一個(gè)根目錄,可以從該根目錄訪問(wèn)該文件系統(tǒng)中的所有其他文件。例如,Windows 平臺(tái)為每個(gè)活動(dòng)驅(qū)動(dòng)器都有一個(gè)根目錄; UNIX 平臺(tái)有一個(gè)根目錄,即“/”??捎梦募到y(tǒng)根的集合受到各種系統(tǒng)級(jí)操作的影響,例如可移動(dòng)媒體的插入或彈出以及物理或虛擬磁盤驅(qū)動(dòng)器的斷開或卸載。
此方法返回一個(gè) File 對(duì)象數(shù)組,這些對(duì)象表示可用文件系統(tǒng)根目錄的根目錄。保證本地機(jī)器上物理存在的任何文件的規(guī)范路徑名都將以此方法返回的根之一開頭。
駐留在其他機(jī)器上并通過(guò)遠(yuǎn)程文件系統(tǒng)協(xié)議(如 SMB 或 NFS)訪問(wèn)的文件的規(guī)范路徑名可能以也可能不以此方法返回的根之一開頭。如果遠(yuǎn)程文件的路徑名在語(yǔ)法上與本地文件的路徑名無(wú)法區(qū)分,那么它將以此方法返回的根之一開始。因此,例如,表示 Windows 平臺(tái)的映射網(wǎng)絡(luò)驅(qū)動(dòng)器的根目錄的 File 對(duì)象將由該方法返回,而包含 UNC 路徑名的 File 對(duì)象不會(huì)由該方法返回。
與此類中的大多數(shù)方法不同,此方法不會(huì)引發(fā)安全異常。如果存在安全管理器并且其 SecurityManager#checkRead(String) 方法拒絕對(duì)特定根目錄的讀取訪問(wèn),則該目錄將不會(huì)出現(xiàn)在結(jié)果中。
返回:
表示可用文件系統(tǒng)根的 File 對(duì)象數(shù)組,如果無(wú)法確定根集,則為 null。如果沒(méi)有文件系統(tǒng)根,則該數(shù)組將為空。
Since:
1.2
public long getTotalSpace()
返回由此抽象路徑名命名的分區(qū)的大小。
返回:
分區(qū)的大?。ㄒ宰止?jié)為單位),如果此抽象路徑名未命名分區(qū),則為 0L
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果已安裝安全管理器并且它拒絕 RuntimePermission("getFileSystemAttributes") 或其 SecurityManager#checkRead(String) 方法拒絕對(duì)該抽象路徑名命名的文件的讀取訪問(wèn)權(quán)限 |
Since:
1.6
public long getFreeSpace()
返回由此抽象路徑名命名的分區(qū)中未分配的字節(jié)數(shù)。
返回的未分配字節(jié)數(shù)是一個(gè)提示,但不能保證可以使用這些字節(jié)中的大部分或任何一個(gè)。 未分配字節(jié)數(shù)很可能在此調(diào)用后立即準(zhǔn)確。 任何外部 I/O 操作(包括在此虛擬機(jī)之外的系統(tǒng)上進(jìn)行的操作)都可能使其不準(zhǔn)確。 此方法不保證對(duì)該文件系統(tǒng)的寫入操作會(huì)成功。
返回:
分區(qū)上未分配的字節(jié)數(shù),如果抽象路徑名未命名分區(qū),則為 0L。 該值將小于或等于 getTotalSpace() 返回的文件系統(tǒng)總大小。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果已安裝安全管理器并且它拒絕 RuntimePermission("getFileSystemAttributes") 或其 SecurityManager#checkRead(String) 方法拒絕對(duì)該抽象路徑名命名的文件的讀取訪問(wèn)權(quán)限 |
Since:
1.6
public long getUsableSpace()
返回此抽象路徑名命名的分區(qū)上此虛擬機(jī)可用的字節(jié)數(shù)。 如果可能,此方法會(huì)檢查寫入權(quán)限和其他操作系統(tǒng)限制,因此通常會(huì)比 getFreeSpace() 更準(zhǔn)確地估計(jì)實(shí)際可以寫入的新數(shù)據(jù)量。
返回的可用字節(jié)數(shù)是一個(gè)提示,但不能保證可以使用這些字節(jié)中的大部分或任何一個(gè)。 未分配字節(jié)數(shù)很可能在此調(diào)用后立即準(zhǔn)確。 任何外部 I/O 操作(包括在此虛擬機(jī)之外的系統(tǒng)上進(jìn)行的操作)都可能使其不準(zhǔn)確。 此方法不保證對(duì)該文件系統(tǒng)的寫入操作會(huì)成功。
返回:
分區(qū)上的可用字節(jié)數(shù),如果抽象路徑名未命名分區(qū),則為 0L。 在此信息不可用的系統(tǒng)上,此方法將等效于調(diào)用 getFreeSpace()。
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果已安裝安全管理器并且它拒絕 RuntimePermission("getFileSystemAttributes") 或其 SecurityManager#checkRead(String) 方法拒絕對(duì)該抽象路徑名命名的文件的讀取訪問(wèn)權(quán)限 |
Since:
1.6
public static File createTempFile(String prefix, String suffix, File directory) throws IOException
在指定目錄中創(chuàng)建一個(gè)新的空文件,使用給定的前綴和后綴字符串生成其名稱。 如果此方法成功返回,則保證:
此方法僅提供臨時(shí)文件功能的一部分。要安排自動(dòng)刪除由此方法創(chuàng)建的文件,請(qǐng)使用 deleteOnExit() 方法。
前綴參數(shù)的長(zhǎng)度必須至少為三個(gè)字符。建議前綴是一個(gè)簡(jiǎn)短的、有意義的字符串,例如“hjb”或“mail”。后綴參數(shù)可能為空,在這種情況下將使用后綴“.tmp”。
為了創(chuàng)建新文件,可以首先調(diào)整前綴和后綴以適應(yīng)底層平臺(tái)的限制。如果前綴太長(zhǎng),那么它將被截?cái)?,但它的前三個(gè)字符將始終被保留。如果后綴太長(zhǎng),它也會(huì)被截?cái)?,但如果它以句點(diǎn)字符 ('.') 開頭,則句點(diǎn)和后面的前三個(gè)字符將始終保留。完成這些調(diào)整后,將通過(guò)連接前綴、五個(gè)或更多內(nèi)部生成的字符和后綴來(lái)生成新文件的名稱。
如果目錄參數(shù)為空,則將使用系統(tǒng)相關(guān)的默認(rèn)臨時(shí)文件目錄。默認(rèn)臨時(shí)文件目錄由系統(tǒng)屬性 java.io.tmpdir 指定。在 UNIX 系統(tǒng)上,該屬性的默認(rèn)值通常是“/tmp”或“/var/tmp”;在 Microsoft Windows 系統(tǒng)上,它通常是“C:\WINNT\TEMP”。調(diào)用 Java 虛擬機(jī)時(shí),可以為該系統(tǒng)屬性賦予不同的值,但不保證對(duì)該屬性的編程更改對(duì)該方法使用的臨時(shí)目錄有任何影響。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
prefix | 用于生成文件名的前綴字符串; 長(zhǎng)度必須至少為三個(gè)字符 |
suffix | 用于生成文件名的后綴字符串; 可能為空,在這種情況下,將使用后綴“.tmp” |
directory | 要在其中創(chuàng)建文件的目錄,如果要使用默認(rèn)的臨時(shí)文件目錄,則為 null |
返回:
表示新創(chuàng)建的空文件的抽象路徑名
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果前綴參數(shù)包含少于三個(gè)字符 |
IOException | 如果無(wú)法創(chuàng)建文件 |
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法不允許創(chuàng)建文件 |
Since:
1.2
public static File createTempFile(String prefix, String suffix) throws IOException
在默認(rèn)臨時(shí)文件目錄中創(chuàng)建一個(gè)空文件,使用給定的前綴和后綴生成其名稱。 調(diào)用此方法等效于調(diào)用 createTempFile(prefix, suffix, null)。
Files.createTempFile 方法提供了另一種在臨時(shí)文件目錄中創(chuàng)建空文件的方法。 通過(guò)該方法創(chuàng)建的文件可能對(duì)該方法創(chuàng)建的文件具有更嚴(yán)格的訪問(wèn)權(quán)限,因此可能更適合對(duì)安全敏感的應(yīng)用程序。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
prefix | 用于生成文件名的前綴字符串; 長(zhǎng)度必須至少為三個(gè)字符 |
suffix | 用于生成文件名的后綴字符串; 可能為空,在這種情況下,將使用后綴“.tmp” |
返回:
表示新創(chuàng)建的空文件的抽象路徑名
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果前綴參數(shù)包含少于三個(gè)字符 |
IOException | 如果無(wú)法創(chuàng)建文件 |
SecurityException | 如果存在安全管理器并且其 SecurityManager.checkWrite(java.lang.String) 方法不允許創(chuàng)建文件 |
Since:
1.2
public int compareTo(File pathname)
按字典順序比較兩個(gè)抽象路徑名。 此方法定義的排序取決于底層系統(tǒng)。 在 UNIX 系統(tǒng)上,字母大小寫在比較路徑名時(shí)很重要。 在 Microsoft Windows 系統(tǒng)上不是這樣。
指定者:
接口 ComparableFile 中的 compareTo
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
pathname | 要與此抽象路徑名進(jìn)行比較的抽象路徑名 |
返回:
如果參數(shù)等于此抽象路徑名,則為零;如果此抽象路徑名按字典順序小于參數(shù),則值小于零;如果此抽象路徑名按字典順序大于參數(shù),則值大于零
Since:
1.2
public boolean equals(Object obj)
測(cè)試此抽象路徑名是否與給定對(duì)象相等。 當(dāng)且僅當(dāng)參數(shù)不為 null 并且是表示與此抽象路徑名相同的文件或目錄的抽象路徑名時(shí),才返回 true。 兩個(gè)抽象路徑名是否相等取決于底層系統(tǒng)。 在 UNIX 系統(tǒng)上,字母大小寫在比較路徑名時(shí)很重要。 在 Microsoft Windows 系統(tǒng)上不是這樣。
覆蓋:
類 Object 中的等于
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
obj | 要與此抽象路徑名比較的對(duì)象 |
返回:
當(dāng)且僅當(dāng)對(duì)象相同時(shí)才為 true; 否則為 false
public int hashCode()
計(jì)算此抽象路徑名的哈希碼。 因?yàn)槌橄舐窂矫南嗟刃员举|(zhì)上是系統(tǒng)相關(guān)的,所以它們的哈希碼的計(jì)算也是如此。 在 UNIX 系統(tǒng)上,抽象路徑名的哈希碼等于其路徑名字符串的哈希碼和十進(jìn)制值 1234321 的異或。在 Microsoft Windows 系統(tǒng)上,哈希碼等于 其路徑名字符串轉(zhuǎn)換為小寫和十進(jìn)制值 1234321。在小寫路徑名字符串時(shí)不考慮區(qū)域設(shè)置。
覆蓋:
類 Object 中的 hashCode
返回:
此抽象路徑名的哈希碼
public String toString()
返回此抽象路徑名的路徑名字符串。 這只是 getPath() 方法返回的字符串。
覆蓋:
類 Object 中的 toString
返回:
此抽象路徑名的字符串形式
public Path toPath()
返回從 this 抽象路徑構(gòu)造的 Path 對(duì)象。 生成的路徑與默認(rèn)文件系統(tǒng)相關(guān)聯(lián)。
此方法的第一次調(diào)用就像調(diào)用它等同于評(píng)估表達(dá)式一樣:
FileSystems.getDefault().getPath(this.getPath());
此方法的后續(xù)調(diào)用返回相同的路徑。
如果此抽象路徑名是空的抽象路徑名,則此方法返回可用于訪問(wèn)當(dāng)前用戶目錄的路徑。
返回:
從這個(gè)抽象路徑構(gòu)造的路徑
Throws:
Throw名稱 | Throw描述 |
---|---|
InvalidPathException | 如果無(wú)法從抽象路徑構(gòu)造 Path 對(duì)象(請(qǐng)參閱 FileSystem.getPath) |
Since:
1.7
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: