CodeGym /Java 博客 /随机的 /Java 文件读取器类
John Squirrels
第 41 级
San Francisco

Java 文件读取器类

已在 随机的 群组中发布

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