當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Java.io.File用法及代碼示例


Java File 類是文件或目錄路徑名的 Java 表示。由於文件和目錄名稱在不同平台上具有不同的格式,因此簡單的字符串不足以命名它們。 Java File 類包含多種方法,用於處理路徑名、刪除和重命名文件、創建新目錄、列出目錄內容以及確定文件和目錄的幾個常見屬性。

  • 它是文件和目錄路徑名的抽象表示。
  • 路徑名,無論是抽象的還是字符串形式的,都可以是絕對的或相對的。抽象路徑名的父級可以通過調用此類的getParent()方法來獲取。
  • 首先,我們應該通過向其傳遞文件名或目錄名來創建 File 類對象。文件係統可以對實際文件係統對象的某些操作實施限製,例如讀、寫和執行。這些限製統稱為訪問權限。
  • File 類的實例是不可變的;也就是說,一旦創建,由 File 對象表示的抽象路徑名將永遠不會改變。

如何創建文件對象?

File 對象是通過傳入表示文件名稱的字符串、String 或另一個 File 對象來創建的。例如,

File a = new File("/usr/local/bin/geeks");

這為目錄 /usr/local/bin 中的 geeks 文件定義了一個抽象文件名。這是一個絕對的抽象文件名。

Java 文件類中的字段

Field

Type

Description

pathSeperator String 用於分隔文件係統路徑列表中各個路徑的字符或字符串。
pathSeperatorChar Char 用於分隔文件係統路徑列表中各個路徑的字符。
separator String 默認名稱分隔符表示為字符串。
separatorChar Char 默認名稱分隔符。

Java 文件類的構造函數

  • 文件(文件父級,字符串子級):從父抽象路徑名和子路徑名字符串創建一個新的 File 實例。
  • 文件(字符串路徑名):通過將給定路徑名字符串轉換為抽象路徑名來創建新的 File 實例。
  • 文件(字符串父級,字符串子級):從父路徑名字符串和子路徑名字符串創建新的 File 實例。
  • 文件(URI uri):通過將給定的 file: URI 轉換為抽象路徑名來創建新的 File 實例。

方法 Java中的文件類

S. 編號 方法 說明 返回類型
1. File canExecute() 測試應用程序是否可以執行此抽象路徑名表示的文件。 boolean
2. File canRead() 測試應用程序是否可以讀取此抽象路徑名表示的文件。 boolean
3. File canWrite() 測試應用程序是否可以修改此抽象路徑名表示的文件。 boolean
4. compareTo(File pathname) 按字典順序比較兩個抽象路徑名。 int
5. File createNewFile() 原子地創建一個以此抽象路徑名命名的新的空文件。 boolean
6. File createTempFile() 在默認臨時文件目錄中創建一個空文件。 File
7. Files delete() 刪除此抽象路徑名表示的文件或目錄。 boolean
8. equals(Object obj) 測試此抽象路徑名是否與給定對象相等。 boolean
9. File exists() 測試此抽象路徑名表示的文件或目錄是否存在。 boolean
10. File getAbsolutePath() 返回此抽象路徑名的絕對路徑名字符串。 String
11. File list() 返回命名目錄中文件和目錄的字符串數組。 String []
12. File getFreeSpace() 返回分區中未分配的字節數。 long
13. File getName() 返回此抽象路徑名表示的文件或目錄的名稱。 String
14. File getParent() 返回此抽象路徑名的父路徑名字符串。 String
15. File getParentFile() 返回此抽象路徑名的父級的抽象路徑名。 File
16. File getPath() 將此抽象路徑名轉換為路徑名字符串。 String
17. File setReadOnly() 標記指定的文件或目錄,以便隻允許讀取操作。 boolean
18. File isDirectory() 測試此路徑名表示的文件是否是目錄。 boolean
19. File isFile() 測試此抽象路徑名表示的文件是否是普通文件。 boolean
20. File isHidden() 測試此抽象路徑名命名的文件是否是隱藏文件。 boolean
21. File length() 返回此抽象路徑名表示的文件的長度。 long
22. File listFiles() 返回表示目錄中文件的抽象路徑名數組。 文件[]
23. File mkdir() 創建以此抽象路徑名命名的目錄。 boolean
24. File renameTo() 重命名此抽象路徑名表示的文件。 boolean
25. File setExecutable() 設置所有者執行權限的便捷方法。 boolean
26. File setReadable() 設置所有者讀取權限的便捷方法。 boolean
27. File setReadable() 設置所有者或每個人的讀取權限。 boolean
28. File setWritable() 設置所有者寫入權限的便捷方法。 boolean
29. toString() 返回此抽象路徑名的路徑名字符串。 String
30. toURI() 構造一個表示此抽象路徑名的文件 URI。 URI

Java 文件類示例

示例 1:用於檢查文件或目錄是否實際存在的程序。

Java


// In this Java program, we accepts a file or directory name
// from command line arguments. Then the program will check
// if that file or directory physically exist or not and it
// displays the property of that file or directory.
import java.io.File;
// Displaying file property
class fileProperty {
    public static void main(String[] args)
    {
        // accept file name or directory name through
        // command line args
        String fname = args[0];
        // pass the filename or directory name to File
        // object
        File f = new File(fname);
        // apply File class methods on File object
        System.out.println("File name :" + f.getName());
        System.out.println("Path: " + f.getPath());
        System.out.println("Absolute path:"
                           + f.getAbsolutePath());
        System.out.println("Parent:" + f.getParent());
        System.out.println("Exists :" + f.exists());
        if (f.exists()) {
            System.out.println("Is writable:"
                               + f.canWrite());
            System.out.println("Is readable" + f.canRead());
            System.out.println("Is a directory:"
                               + f.isDirectory());
            System.out.println("File Size in bytes "
                               + f.length());
        }
    }
}

輸出

File name :file.txt
Path: file.txt
Absolute path:C:\Users\akki\IdeaProjects\codewriting\src\file.txt
Parent:null
Exists :true
Is writable:true
Is readabletrue
Is a directory:false
File Size in bytes 20

示例 2:顯示目錄所有內容的程序

這裏我們將從鍵盤接受一個目錄名稱,然後顯示該目錄的所有內容。為此,list()方法可以用作:

String arr[]=f.list();

在前麵的語句中,list()方法導致所有目錄條目複製到數組中到達[]。然後將這些數組元素 arr[i] 傳遞給 File 對象並測試它們以了解它們是否代表文件或目錄。

Java


// Java Program to display all
// the contents of a directory
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
// Displaying the contents of a directory
class Contents {
    public static void main(String[] args)
        throws IOException
    {
        // enter the path and dirname from keyboard
        BufferedReader br = new BufferedReader(
            new InputStreamReader(System.in));
        System.out.println("Enter dirpath:");
        String dirpath = br.readLine();
        System.out.println("Enter the dirname");
        String dname = br.readLine();
        // create File object with dirpath and dname
        File f = new File(dirpath, dname);
        // if directory exists,then
        if (f.exists()) {
            // get the contents into arr[]
            // now arr[i] represent either a File or
            // Directory
            String arr[] = f.list();
            // find no. of entries in the directory
            int n = arr.length;
            // displaying the entries
            for (int i = 0; i < n; i++) {
                System.out.println(arr[i]);
                // create File object with the entry and
                // test if it is a file or directory
                File f1 = new File(arr[i]);
                if (f1.isFile())
                    System.out.println(": is a file");
                if (f1.isDirectory())
                    System.out.println(": is a directory");
            }
            System.out.println(
                "No of entries in this directory " + n);
        }
        else
            System.out.println("Directory not found");
    }
}

輸出

Enter dirpath:
C:\Users\akki\IdeaProjects\
Enter the dirname
codewriting
.idea
: is a directory
an1.txt
: is a file
codewriting.iml
: is a file
file.txt
: is a file
out
: is a directory
src
: is a directory
text
: is a file
No of entries in this directory 7

相關帖子: Java 中的 FileReader 和 FileWriter



相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.io.File Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。