Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤與異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java APIs 與框架

Java 類參考

Java 有用資源

Java - File 類



Java File 類

Java File 類以抽象的方式表示檔案和目錄路徑名。此類用於建立檔案和目錄、檔案搜尋、檔案刪除等。

File 物件表示磁碟上的實際檔案/目錄。

File 類建構函式

以下是建立 File 物件的建構函式列表。

序號 方法及描述
1

File(File parent, String child)

此建構函式從父抽象路徑名和子路徑名字串建立一個新的 File 例項。

2

File(String pathname)

此建構函式透過將給定的路徑名字串轉換為抽象路徑名來建立一個新的 File 例項。

3

File(String parent, String child)

此建構函式從父路徑名字串和子路徑名字串建立一個新的 File 例項。

4

File(URI uri)

此建構函式透過將給定的 file: URI 轉換為抽象路徑名來建立一個新的 File 例項。

File 類方法

一旦您擁有了 *File* 物件,就可以使用一系列輔助方法來操作檔案。

序號 方法及描述
1

public String getName()

返回此抽象路徑名所表示的檔案或目錄的名稱。

2

public String getParent()

返回此抽象路徑名的父路徑名字串,如果此路徑名未命名父目錄,則返回 null。

3

public File getParentFile()

返回此抽象路徑名的父抽象路徑名,如果此路徑名未命名父目錄,則返回 null。

4

public String getPath()

將此抽象路徑名轉換為路徑名字串。

5

public boolean isAbsolute()

測試此抽象路徑名是否為絕對路徑。如果此抽象路徑名是絕對路徑,則返回 true,否則返回 false。

6

public String getAbsolutePath()

返回此抽象路徑名的絕對路徑名字串。

7

public boolean canRead()

測試應用程式是否可以讀取此抽象路徑名所表示的檔案。當且僅當此抽象路徑名指定的檔案存在且應用程式可以讀取時,返回 true;否則返回 false。

8

public boolean canWrite()

測試應用程式是否可以修改此抽象路徑名所表示的檔案。當且僅當檔案系統實際包含此抽象路徑名所表示的檔案,並且應用程式允許寫入該檔案時,返回 true;否則返回 false。

9

public boolean exists()

測試此抽象路徑名所表示的檔案或目錄是否存在。當且僅當此抽象路徑名所表示的檔案或目錄存在時,返回 true;否則返回 false。

10

public boolean isDirectory()

測試此抽象路徑名所表示的檔案是否為目錄。當且僅當此抽象路徑名所表示的檔案存在且為目錄時,返回 true;否則返回 false。

11

public boolean isFile()

測試此抽象路徑名所表示的檔案是否為普通檔案。如果一個檔案不是目錄,並且還滿足其他系統相關的條件,則該檔案是普通檔案。Java 應用程式建立的任何非目錄檔案都保證是普通檔案。當且僅當此抽象路徑名所表示的檔案存在且為普通檔案時,返回 true;否則返回 false。

12

public long lastModified()

返回此抽象路徑名所表示的檔案上次修改的時間。返回一個長整數值,表示檔案上次修改的時間(以自紀元(1970 年 1 月 1 日 00:00:00 GMT)以來的毫秒數計算),如果檔案不存在或發生 I/O 錯誤,則返回 0L。

13

public long length()

返回此抽象路徑名所表示的檔案的長度。如果此路徑名錶示目錄,則返回值未指定。

14

public boolean createNewFile() throws IOException

當且僅當此名稱的檔案尚不存在時,以原子方式建立此抽象路徑名所命名的新的空檔案。如果命名檔案不存在併成功建立,則返回 true;如果命名檔案已存在,則返回 false。

15

public boolean delete()

刪除此抽象路徑名所表示的檔案或目錄。如果此路徑名錶示目錄,則該目錄必須為空才能被刪除。當且僅當檔案或目錄成功刪除時,返回 true;否則返回 false。

16

public void deleteOnExit()

請求在虛擬機器終止時刪除此抽象路徑名錶示的檔案或目錄。

17

public String[] list()

返回一個字串陣列,其中包含此抽象路徑名錶示的目錄中的檔案和目錄的名稱。

18

public String[] list(FilenameFilter filter)

返回一個字串陣列,其中包含此抽象路徑名錶示的目錄中滿足指定過濾器的檔案和目錄的名稱。

20

public File[] listFiles()

返回一個抽象路徑名陣列,表示此抽象路徑名錶示的目錄中的檔案。

21

public File[] listFiles(FileFilter filter)

返回一個抽象路徑名陣列,表示此抽象路徑名錶示的目錄中滿足指定過濾器的檔案和目錄。

22

public boolean mkdir()

建立此抽象路徑名錶示的目錄。當且僅當目錄建立成功時返回 true;否則返回 false。

23

public boolean mkdirs()

建立此抽象路徑名錶示的目錄,包括任何必要的但不存在的父目錄。當且僅當目錄及其所有必要的父目錄建立成功時返回 true;否則返回 false。

24

public boolean renameTo(File dest)

重新命名此抽象路徑名錶示的檔案。當且僅當重新命名成功時返回 true;否則返回 false。

25

public boolean setLastModified(long time)

設定此抽象路徑名錶示的檔案或目錄的上次修改時間。當且僅當操作成功時返回 true;否則返回 false。

26

public boolean setReadOnly()

標記此抽象路徑名錶示的檔案或目錄,使其只允許讀取操作。當且僅當操作成功時返回 true;否則返回 false。

27

public static File createTempFile(String prefix, String suffix, File directory) throws IOException

在指定的目錄中建立一個新的空檔案,使用給定的字首和字尾字串生成其名稱。返回一個表示新建立的空檔案的抽象路徑名。

28

public static File createTempFile(String prefix, String suffix) throws IOException

在預設的臨時檔案目錄中建立一個空檔案,使用給定的字首和字尾生成其名稱。呼叫此方法等效於呼叫 createTempFile(prefix, suffix, null)。返回表示新建立的空檔案的抽象路徑名。

29

public int compareTo(File pathname)

按字典順序比較兩個抽象路徑名。如果引數等於此抽象路徑名,則返回零;如果此抽象路徑名按字典順序小於引數,則返回小於零的值;如果此抽象路徑名按字典順序大於引數,則返回大於零的值。

30

public int compareTo(Object o)

將此抽象路徑名與另一個物件進行比較。如果引數等於此抽象路徑名,則返回零;如果此抽象路徑名按字典順序小於引數,則返回小於零的值;如果此抽象路徑名按字典順序大於引數,則返回大於零的值。

31

public boolean equals(Object obj)

測試此抽象路徑名與給定物件的相等性。當且僅當引數不為 null 且是一個表示與此抽象路徑名相同檔案或目錄的抽象路徑名時返回 true。

32

public String toString()

返回此抽象路徑名的路徑名字串。這只是 getPath() 方法返回的字串。

Java 中的 File 類示例

以下是一個演示 File 物件的示例:

package com.tutorialspoint;
import java.io.File;

public class FileDemo {
   
   public static void main(String[] args) {
      File f = null;
      String[] strs = {"test1.txt", "test2.txt"};
      try {
         // for each string in string array 
         for(String s:strs ) {
            // create new file
            f = new File(s);
            
            // true if the file is executable
            boolean bool = f.canExecute();
            
            // find the absolute path
            String a = f.getAbsolutePath(); 
            
            // prints absolute path
            System.out.print(a);
            
            // prints
            System.out.println(" is executable: "+ bool);
         } 
      } catch (Exception e) {
         // if any I/O error occurs
         e.printStackTrace();
      }
   }
}

假設當前目錄下有一個可執行檔案 test1.txt 和另一個不可執行檔案 test2.txt。讓我們編譯並執行上面的程式,這將產生以下結果:

輸出

/home/cg/root/2880380/test1.txt is executable: false
/home/cg/root/2880380/test2.txt is executable: false
java_files_io.htm
廣告