JavaIO —— java.io.File類


常用常量 創建一個新的 File 對象 File類的缺點

 

常用常量

File.separator(分隔同一個路徑字符串中的目錄,例如C:\Program Files\Common Files)

        與系統有關的默認名稱分隔符,爲了方便,它被表示爲一個字符串。此字符串只包含一個字符,即 separatorChar。

File.separatorChar

        與系統有關的默認名稱分隔符。此字段被初始化爲包含系統屬性 file.separator 值的第一個字符。在 UNIX 系統上,此字段的值爲 '/';在 Microsoft Windows 系統上,它爲 '\\'。

File.pathSeparator(分隔連續多個路徑字符串的分隔符,例如java-cptest.jar;abc.jar HelloWorld)

        與系統有關的路徑分隔符,爲了方便,它被表示爲一個字符串。此字符串只包含一個字符,即pathSeparatorChar

File.pathSeparatorChar

        與系統有關的路徑分隔符。此字段被初始爲包含系統屬性 path.separator 值的第一個字符。此字符用於分隔以路徑列表 形式給定的文件序列中的文件名。在 UNIX 系統上,此字段爲 ':';在 Microsoft Windows 系統上,它爲 ';'。

示例:

//獲取當前class所在的盤符文件目錄,假設爲:D

File root =new File("/");

//絕對路徑爲: D:/test.txt

File txtFile =new File(root,"test.txt");

 

創建一個新的File對象

File(File parent, String child)

        根據 parent 抽象路徑名和 child 路徑名字符串創建一個新 File 實例。

File(String parent, String child)

        根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例。

File(String pathname)

        通過將給定路徑名字符串轉換爲抽象路徑名來創建一個新 File 實例。

File(URI uri)

        通過將給定的 file: URI 轉換爲一個抽象路徑名來創建一個新的 File 實例。

相對目錄問題

        java.io 包中的類總是根據當前用戶目錄來解析相對路徑名。此目錄由系統屬性 user.dir 指定,通常是 Java 虛擬機的調用目錄。

 

File類的缺點

在Java SE 7的發佈之前,java.io.File類是用於文件I / O機制,但它有幾個缺點:

- 很多方法失敗了,但沒有拋出異常,所以不可能獲得有用的錯誤消息。例如,一個文件刪除失敗,程序會收到一個“刪除失敗”,但不知-道是不是因爲該文件不存在、用戶沒有權限,或者有一些其他的問題。
-rename方法始終無法跨平臺運行。
-沒有真正支持 symbolic links。
-無法獲取更多需要的元數據,比如文件權限,文件所有者,以及其他安全屬性。
-訪問文件的元數據是低效的。
-許多方法並沒有形成規模。如果需要列出大目錄,可能會導致系統掛起。大目錄也可能造成內存資源的問題,導致拒絕服務。
-在遍歷文件樹的時候,如果有循環性的符號鏈接,並不能編寫可靠的代碼作出適當的反應。

例如刪除一個文件:

File file =new File("J:/test");

 

//當刪除失敗後不知原因

boolean b = file.delete();

System.out.println(b);

 

//刪除失敗會給出詳細的異常信息

Path path = file.toPath();

try {

Files.delete(path);

}catch (IOException e) {

e.printStackTrace();

}

 

已使用 傳智播客 創建。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章