CodeGym /Java Blog /Toto sisi /Java.io.檔案類
John Squirrels
等級 41
San Francisco

Java.io.檔案類

在 Toto sisi 群組發布
很多情況下,程式在工作中需要存取某些文件。例如,使用者資料可以記錄在某個外部文件中,為了讀取它,程式需要能夠使用它——開啟、讀取數據,可能還可以編輯和關閉。為此,Java 程式語言具有Java.io.File類別。在本文中,我們將考慮它是什麼類型,並給出使用它的範例。

什麼是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");
      }
}
這是輸出:
資料夾已建立... 檔名:cat.txt 父資料夾:d:\MyDir 檔存在
順便說一下,如果一切都正確的話,您可以在電腦上找到一個新的目錄和檔案。現在讓我們編寫一個程序,可以在其中處理已建立的目錄和檔案。這裡我們使用上面描述的一些方法。
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());

       }
   }
}
程式的輸出是:
檔案名稱:cat.txt 父資料夾:d:\MyDir 檔案存在 絕對路徑:d:\MyDir\cat.txt 可寫入:true 可讀:true 是目錄:false myFile 位元組大小 = 0
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION