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 Java.io.File.canExecute()用法及代碼示例
- Java Java.io.File.canRead()用法及代碼示例
- Java Java.io.File.canWrite()用法及代碼示例
- Java Java.io.File.compareTo()用法及代碼示例
- Java Java.io.File.createNewFile()用法及代碼示例
- Java Java.io.File.createTempFile()用法及代碼示例
- Java Java.io.File.delete()用法及代碼示例
- Java Java.io.File.deleteOnExit()用法及代碼示例
- Java Java.io.File.equals()用法及代碼示例
- Java Java.io.File.exists()用法及代碼示例
- Java Java.io.File.getAbsoluteFile()用法及代碼示例
- Java Java.io.File.getAbsolutePath()用法及代碼示例
- Java Java.io.File.getCanonicalFile()用法及代碼示例
- Java Java.io.File.getCanonicalPath()用法及代碼示例
- Java Java.io.File.getFreeSpace()用法及代碼示例
- Java Java.io.File.getName()用法及代碼示例
- Java Java.io.File.getParent()用法及代碼示例
- Java Java.io.File.getParentFile()用法及代碼示例
- Java Java.io.File.getPath()用法及代碼示例
- Java Java.io.File.getTotalSpace()用法及代碼示例
- Java Java.io.File.getUsableSpace()用法及代碼示例
- Java Java.io.File.hashCode()用法及代碼示例
- Java Java.io.File.isAbsolute()用法及代碼示例
- Java Java.io.File.isDirectory()用法及代碼示例
- Java Java.io.File.isFile()用法及代碼示例
注:本文由純淨天空篩選整理自佚名大神的英文原創作品 Java.io.File Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。