CodeGym /Java Blog /Toto sisi /Java 檔案讀取器類
John Squirrels
等級 41
San Francisco

Java 檔案讀取器類

在 Toto sisi 群組發布

FileReader 類別概述

FileReader類別擴充了InputStreamReader類,專門從檔案讀取基於字元的資料它是處理文字檔案時的理想選擇,並且可以有效率地從文件中讀取字元。要使用FileReader類,您需要建立它的實例並提供檔案路徑作為參數。這會在檔案讀取器物件和指定檔案之間建立連接,使您能夠從中讀取字元。

Java 檔案讀取器範例

讓我們來看一個範例,示範如何使用FileReader類別讀取檔案的內容:

// We import the necessary classes: `java.io.BufferedReader`
import java.io.BufferedReader;
// We import the class: `java.io.FileReader` here to use fileReader
import java.io.FileReader;
// We import the class: `java.io.IOException` here to handle  fileReader exception
import java.io.IOException;

public class FileReaderExample {

    public static void main(String[] args) {
        String filePath = "/path/to/example.txt";
        try (FileReader fileReader = new FileReader(filePath);
             BufferedReader bufferedReader = new BufferedReader(fileReader)) {
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            System.out.println("Error reading file: " + e.getMessage());
        }
    }
}

偽代碼解釋:

  1. 導入必要的類別:BufferedReaderFileReaderIOException
  2. 定義一個名為FileReaderExample的類別。
  3. main方法中,我們宣告一個名為filePath的字串變量,並將其指定為系統上「example.txt」檔案的絕對路徑。
  4. 當我們使用完FileReaderBufferedReader實例時,使用 try-with-resources 語句自動關閉它們。
  5. 在 try 區塊內,建立一個FileReader對象,並將filePath傳遞給其建構子。
  6. 建立一個BufferedReader對象,並將FileReader物件作為其參數傳遞,這使我們能夠有效率地逐行讀取文件。
  7. 宣告一個名為 line 的字串變數來儲存檔案的每一行。
  8. 輸入一個循環,只要該行不為null ,該循環就會繼續。
  9. 在迴圈內,使用bufferedReader物件的readLine方法從文件中讀取一行。
  10. 如果該行不為null ,請使用System.out.println()將其列印到控制台。
  11. 如果檔案讀取過程中發生異常,則在catch區塊中捕獲並列印錯誤訊息。

輸出

這是第 1 行。這是第 2 行。這是第 3 行。
注意: 程式從「example.txt」檔案(由filePath變數指定)讀取每一行並將其列印到控制台。如果讀取檔案時發生任何錯誤,則會顯示錯誤訊息。確保將“/path/to/example.txt”替換為系統上“example.txt”檔案的實際絕對路徑,以使程式碼正常運作。

結論

Java 中的java.io.FileReader類別提供了一種從檔案讀取基於字元的資料的便捷方法。透過建立FileReader物件並使用其read()方法,您可以逐字元讀取檔案的內容。請記住透過將程式碼包裝在 try-catch 區塊中並在讀取檔案後關閉檔案讀取器物件來處理潛在的異常。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION