什麼是Java文件類
File類別在java.io套件中定義,它不能直接與流一起使用。Java File類別是管理檔案和目錄資訊的。如您所知,在作業系統級別,檔案和目錄是不同的物件。然而在 Java 中,它們都由同一個File類別描述。您可能想知道為什麼不直接使用字串來引用文件?首先,因為檔案存取在不同的作業系統中是不同的。檔案類別建構函數
根據Java.io.File類別物件是否應表示檔案或目錄,我們可以使用其中一個建構函式來建立該物件: File(String pathname)在本例中,建構函式透過轉換給定的路徑名稱建立一個新的File實例字串轉換為抽象路徑名。 File(String myPath, String myString)此建構子從 myPath 路徑名稱字串和 myString 路徑名稱字串 建立新的File實例。File(File Parent, String name)從檔案抽象路徑名稱和名稱路徑名稱字串 建立新的File實例。在本例中, File(URI uri)建構函式透過將給定的 file: URI 轉換為抽象路徑名稱來建立新的File實例。URI 是一個 Java 類,表示統一資源識別碼 (URI) 引用。以下是不同Java.io.File類別建構子的範例:import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
public class FileTest {
public static void main(String[] args) throws URISyntaxException {
File myFile1 = new File("d:\\MyCat");
File myFile2 = new File ("d:\\MyCat", "cat.txt");
File myFile3 = new File(myFile1, "cat.txt");
URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
File myFile4 = new File(uri);
}
}
文件類別的方法
Java File類別有許多允許您操作檔案和目錄的方法。讓我們考慮其中的一些:-
boolean createNewFile()在傳遞給建構函數的路徑中建立一個新檔案。如果成功則傳回 true,否則傳回 false
-
boolean delete()刪除傳遞給建構函式的路徑中的目錄或檔案。刪除成功回傳true
-
boolean contains()檢查建構函式中指定的路徑中是否存在檔案或目錄。如果檔案或目錄存在,則傳回 true,否則傳回 false
-
String getAbsolutePath()傳回傳遞給物件建構函數的路徑的絕對路徑
-
String getName()傳回檔案或目錄的短名稱
-
String getParent()傳回父目錄的名稱
-
如果給定路徑包含目錄,則boolean isDirectory()傳回 true
-
如果給定路徑中有文件,則boolean isFile()傳回 true
-
如果目錄或檔案隱藏,則boolean isHidden()傳回 true
-
長 length()傳回檔案的大小(以位元組為單位)
-
long lastModified()傳回檔案或目錄最後修改的時間。該值表示自 Unix 紀元以來已經過去的毫秒數
-
String[] list()傳回特定目錄中的檔案和子目錄的陣列
-
File[] listFiles()傳回特定目錄中的檔案和子目錄的陣列
-
boolean mkdir()建立一個新目錄,如果成功則傳回 true
-
boolean renameTo(File dest)重新命名檔案或目錄
Java File 類別的一些特性
-
路徑(抽象路徑或字串)可以是絕對路徑或相對路徑。抽象路徑的父級可以透過呼叫該類別的getParent()方法來檢索。
-
首先,我們應該建立File類別的對象,並向其傳遞檔案或目錄的名稱。檔案系統可以對實際檔案系統物件的某些操作施加限制,例如讀取、寫入和執行。這些限制稱為存取權限。
-
File類別的實例是不可變的。這意味著,一旦建立文件,File物件表示的抽象路徑就永遠不會改變。
文件類別程式碼範例
讓我們建立一個使用目錄的程式。首先它應該在給定路徑建立一個目錄,然後建立一個新檔案並檢查檔案和目錄是否存在。import java.io.File;
import java.io.IOException;
public class FileTest2 {
public static void main(String[] args) throws IOException {
//create a directory using mkdir() File class method
File dir = new File("d:\\MyDir");
boolean created = dir.mkdir();
if(created)
System.out.println("Folder has been created...");
else
System.out.println("Folder hasn't been created...");
File myFile = new File("d:\\MyDir\\cat.txt");
myFile.createNewFile();
System.out.println("File name: " + myFile.getName());
System.out.println("Parent folder: " + myFile.getParent());
if(myFile.exists())
System.out.println("File exists");
else
System.out.println("File not found");
}
}
這是輸出:
import java.io.File;
public class FileTest3 {
public static void main(String[] args) {
File dir = new File("d:\\MyDir");
File myFile = new File("d:\\MyDir\\cat.txt");
System.out.println("File name: " + myFile.getName());
System.out.println("Parent folder: " + myFile.getParent());
if (myFile.exists())
System.out.println("File exists");
else
System.out.println("File not found");
System.out.println("Absolute path: " + myFile.getAbsolutePath());
if (myFile.exists()) {
System.out.println("Is writable: " + myFile.canWrite());
System.out.println("Is readable: " + myFile.canRead());
System.out.println("Is a directory: " + myFile.isDirectory());
System.out.println("myFile Size in bytes = " + myFile.length());
}
}
}
程式的輸出是:
GO TO FULL VERSION