如何将文件读取为字符串

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

将数据存储到文件中对于永久存储非常有用。在 Java 中,有四个类可以用于读取文件:FileReaderScannerFileInputStreamBufferedReader。这些类是 java.io 包的一部分,用于 Java 中的文件处理。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["`Object-Oriented and Advanced Concepts`"]) java(("`Java`")) -.-> java/FileandIOManagementGroup(["`File and I/O Management`"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("`User Input`") java/FileandIOManagementGroup -.-> java/files("`Files`") java/FileandIOManagementGroup -.-> java/create_write_files("`Create/Write Files`") java/FileandIOManagementGroup -.-> java/read_files("`Read Files`") java/FileandIOManagementGroup -.-> java/io("`IO`") subgraph Lab Skills java/user_input -.-> lab-117443{{"`如何将文件读取为字符串`"}} java/files -.-> lab-117443{{"`如何将文件读取为字符串`"}} java/create_write_files -.-> lab-117443{{"`如何将文件读取为字符串`"}} java/read_files -.-> lab-117443{{"`如何将文件读取为字符串`"}} java/io -.-> lab-117443{{"`如何将文件读取为字符串`"}} end

创建一个示例文件

首先创建一个示例 .txt 文件用于读取。你可以使用任何文本编辑器来创建这个文件,文件中可以包含任何你想要读取的数据。例如:

This is the sample data stored in a file
Rahul:10025
Sohan:10026
Madan:10027
Jack:10028

导入所需的类

为了读取文件并将其内容转换为字符串,你需要导入以下类:

import java.io.*;

使用 FileReader 读取文件

使用 FileReader 类从文件中读取数据。FileReader 类的对象指向文件的起始位置。使用大小为 1 的缓冲区读取文件的每个字符,并将其附加到 String 变量中。

try {
     // 步骤 1: 创建一个新的 FileReader 对象
     FileReader fr = new FileReader("path/to/your/file.txt");

     // 步骤 2: 创建一个 String 变量来保存文件内容
     String fileData = "";

     // 步骤 3: 创建一个整数变量来保存每次读取的字符
     int c;

     // 步骤 4: 持续读取文件,直到到达文件末尾
     while ((c = fr.read()) != -1) {

         // 步骤 5: 将每次读取的字符附加到 fileData 字符串中
         fileData += (char) c;
     }

     // 步骤 6: 打印文件内容
     System.out.println(fileData);

     // 步骤 7: 关闭文件读取器
     fr.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

使用 Scanner 读取文件

使用 Scanner 类从文本文件中读取数据。你需要将文本文件作为输入源提供给 Scanner,然后使用 \\Z 方法分隔 Scanner,以便一次性读取整个数据并将其转换为字符串。

try {
     File file = new File("path/to/file.txt");
     Scanner scanner = new Scanner(file);

     scanner.useDelimiter("\\Z");

     String fileData = scanner.next();
     System.out.println(fileData);

     scanner.close();
 } catch (FileNotFoundException e) {
     e.printStackTrace();
 }

使用 FileInputStream 读取文件

使用 FileInputStream 类直接从文件中读取数据到字节数组中。创建一个指定大小的缓冲区(在我们的示例中为 10 字节),用于临时存储从文件中读取的数据,然后将其附加到 StringBuilder 对象中。最后,使用 toString() 方法将 StringBuilder 对象的内容转换为 String

try {
     File file = new File("path/to/file.txt");
     FileInputStream fileInputStream = new FileInputStream(file);
     byte[] buffer = new byte[10];
     StringBuilder stringBuilder = new StringBuilder();

     int length;
     while ((length = fileInputStream.read(buffer)) != -1) {
         stringBuilder.append(new String(buffer, 0, length));
     }

     String fileData = stringBuilder.toString();
     System.out.println(fileData);

     fileInputStream.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

使用 BufferedReader 读取文件

使用 BufferedReader 类以简单的方式从文件中读取数据。它会一次性读取所有数据,然后你可以使用 readLine() 方法逐行打印这些数据。

try {
     File file = new File("path/to/file.txt");
     BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
     String line;

     while ((line = bufferedReader.readLine()) != null) {
         System.out.println(line);
     }

     bufferedReader.close();

 } catch (IOException e) {
     e.printStackTrace();
 }

总结

在本实验中,你学习了如何将文件中的数据读取到 Java 的 String 中。实现这一目标有多种方法,包括使用 FileReaderScannerFileInputStreamBufferedReader 类。我们建议你自己尝试这些方法,以便理解它们的工作原理,并确定哪种方法最适合你的具体用例。记得测试你的代码并验证文本文件的路径。

您可能感兴趣的其他 Java 教程