Java 中读取文本文件的不同方法

10 Sept 2024 | 4 分钟阅读

在 Java 中,有多种创建和访问文本文件的方法。在处理许多应用程序时,这是必需的。Java 有多种读取纯文本文件的方法,例如 FileReader、BufferedReader 和 Scanner。每种实用程序都提供独特的功能;例如,BufferedReader 会缓冲数据以加快读取速度,而 Scanner 具有解析功能。

Java 中有不同的文本文件读取方法。它们如下。

  1. 用于读取文本文件的 BufferedReader 类
  2. 用于读取文本文件的 FileReader 类
  3. 用于读取文本文件的 Scanner 类
  4. 将整个文件读取到 List 中
  5. 将文本文件读取为 String

在 Java 中,我们还可以使用 Scanner 和 BufferReader 逐行读取文本文件。接下来,Java SE 8 中引入的新 Stream 类 java.util.stream.Stream 提供了一种更有效和缓慢的文件读取方法。

方法:用于读取文本文件的 BufferedReader 类

文本通过此方法从字符输入流读取。它有一个缓冲区,可以使读取字符、数组和行更有效。可以利用默认缓冲区大小或指定大小。对于大多数用途,默认值就足够了。通常,读请求中的每个读取操作都会导致在底层字符或字节流上发出相应的读取请求。

因此,如下所示,建议将任何可能进行昂贵 read() 操作的 Reader(包括 FileReader 和 InputStreamReader)包装在 BufferedReader 中。

语法

实施

文件名: ReadingTextFile.java

输出

Hello World
Welcome to the house
Have a wonderful day

方法:用于读取文本文件的 FileReader 类

一个实际的读取字符文件的课程。此类构造函数假定默认字节缓冲区大小和字符编码是合适的。

此类中定义了以下构造函数

  1. FileReader(File file): 在创建新的 FileReader 时提供要从中读取的文件。
  2. FileReader(FileDescriptor fd): 在创建新的 FileReader 时提供要从中读取的 FileDescriptor。
  3. FileReader(String fileName): 在创建新的 FileReader 时提供要从中读取的文件的名称。

实施

文件名: ReadingTextFile1.java

输出

Hello World
Welcome to the house
Have a wonderful day

方法:用于读取文本文件的 Scanner 类

一个简单的文本扫描器,使用正则表达式来解释字符串和原始类型。通过将空格匹配为默认分隔符模式,扫描器将其输入划分为标记。然后可以使用许多后续方法将生成的标记转换为各种类型的。值。

情况 1:使用循环

实施

文件名: ReadingTextFile2.java

输出

Hello World
Welcome to the house
Have a wonderful day

情况 2:不使用循环

实施

文件名: ReadingTextFile3.java

输出

Hello World
Welcome to the house
Have a wonderful day

方法:将整个文件读取到 List 中

打开一个文件并读取每一行。使用此方法,您可以确保文件将在读取完所有字节后关闭,或者在引发运行时异常或 I/O 故障时关闭。选择的字符集用于将文件的字节解码为字符。

语法

注意

以上方法将以下内容识别为行终止符

实施

文件名: ReadingTextFile4.java

输出

Hello World
Welcome to the house
Have a wonderful day

方法:将文本文件读取为 String

Java 的 File Class 的 readString() 函数用于读取提供文件中的内容。

语法

返回值: 此方法以 String 格式返回文件的内容。

注意:自 Java 11 发布以来,已使用 File.readString() 方法将文件读取到 String 中。

实施

文件名: ReadingTextFile5.java

输出

Hello World
Welcome to the house
Have a wonderful day

下一个主题Java 中的空数组