Java File類

Java 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) 此構造函數通過將給定檔:URI轉換為抽象路徑名來創建新的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() 測試此抽象路徑名表示的檔是否為普通檔。 當且僅當此抽象路徑名表示的檔存在且是普通檔時,才返回true; 否則返回false
12 public long lastModified() 返回上次修改此抽象路徑名表示的檔的時間。 返回表示檔上次修改時間的long值,以紀元(1970年1月1日格林威治標準時間00:00:00)為單位,以毫秒為單位,如果檔不存在或發生I/O錯誤,則返回0L
13 public long length() 返回此抽象路徑名表示的檔的長度。 如果此路徑名表示目錄,則返回值未指定。
14 public boolean createNewFile() throws IOException 當且僅當具有此名稱的檔尚不存在時,以原子方式創建由此抽象路徑名命名的新空文件。 如果指定的檔不存在且成功創建,則返回true;否則返回false。 如果指定的檔已存在,則返回false
15 public boolean delete() 刪除此抽象路徑名表示的檔或目錄。 如果此路徑名表示目錄,則該目錄必須為空才能被刪除。 當且僅當檔或目錄被成功刪除時返回true; 否則返回false
16 public void deleteOnExit() 請求在虛擬機終止時刪除此抽象路徑名表示的檔或目錄。
17 public String[] list() 返回一個字串數組,表示此抽象路徑名表示的目錄中的檔和目錄。
18 public String[] list(FilenameFilter filter) 返回一個字串數組,表示此抽象路徑名表示的目錄中的檔和目錄,以滿足指定的篩檢程式。
19 public File[] listFiles() 返回一個抽象路徑名數組,表示此抽象路徑名表示的目錄中的檔。
20 public File[] listFiles(FileFilter filter) 返回一個抽象路徑名數組,表示此抽象路徑名表示的目錄中滿足指定篩檢程式的檔和目錄。
21 public boolean mkdir() 創建此抽象路徑名指定的目錄。當且僅當目錄已創建時返回true; 否則返回false
22 public boolean mkdirs() 創建此抽象路徑名指定的目錄,包括任何必需但不存在的父目錄。 當且僅當創建目錄時才返回true,否則返回false
23 public boolean renameTo(File dest) 重命名此抽象路徑名表示的檔。 當且僅當重命名成功時返回true; 否則返回false
24 public boolean setLastModified(long time) 設置此抽象路徑名指定的檔或目錄的上次修改時間。 當且僅當操作成功時返回true; 否則返回false
25 public boolean setReadOnly() 標記此抽象路徑名指定的檔或目錄,以便僅允許讀取操作。當且僅當操作成功時返回true; 否則返回false
26 public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目錄中創建一個新的空文件,使用給定的首碼和尾碼字串生成其名稱。返回表示新創建的空文件的抽象路徑名。
27 public static File createTempFile(String prefix, String suffix) throws IOException 在默認臨時檔目錄中創建一個空文件,使用給定的首碼和尾碼生成其名稱。調用此方法相當於調用createTempFile(prefix,suffix,null)。 返回表示新創建的空文件的抽象路徑名。
28 public int compareTo(File pathname) 按字典順序比較兩個抽象路徑名。 如果參數等於此抽象路徑名,則返回0;如果此抽象路徑名按字典順序小於參數,則返回小於0;如果此抽象路徑名按字典順序大於參數,則返回大於0的值。
29 public int compareTo(Object o) 將此抽象路徑名與另一個對象進行比較。 如果參數等於此抽象路徑名,則返回零;如果此抽象路徑名按字典順序小於參數,則返回小於零;如果此抽象路徑名按字典順序大於參數,則返回大於零的值。
30 public boolean equals(Object obj) 測試此抽象路徑名與給定對象的相等性。 當且僅當參數不為null並且是表示與此抽象路徑名相同的檔或目錄的抽象路徑名時,返回true
31 public String toString() 返回此抽象路徑名的路徑名字串。它也是getPath()方法返回的字串。

示例

下麵演示如何使用File對象 -

import java.io.File;

public class FileDemo {

   public static void main(String[] args) {
      File f = null;
      String[] strs = {"test1.txt", "test2.txt"};
      try {
         // 字串數組中的每個字串

         for(String s:strs ) {
            // 創建每一個File對象
            f = new File(s);

            // 如果檔是可執行的,則返回 true
            boolean bool = f.canExecute();

            // 查找絕對路徑
            String a = f.getAbsolutePath();

            // 列印絕對路徑
            System.out.print(a);

            // 列印結果
            System.out.println(" is executable: "+ bool);
         }
      } catch (Exception e) {
         // if any I/O error occurs
         e.printStackTrace();
      }
   }
}

假設有一個可執行檔:test1.txt,另一個檔test2.txt在當前目錄中是不可執行的。 那麼編譯並運行上面的程式,將產生以下結果 -

/home/zaixian/javaworksp/test1.txt is executable: true
/home/zaixian/javaworksp/test2.txt is executable: false

上一篇: Java檔和輸入和輸出(I/O) 下一篇: Java快速入門