介绍
将数据存储到文件中对于永久存储非常有用。在 Java 中,有四个类可以用于读取文件:FileReader
、Scanner
、FileInputStream
和 BufferedReader
。这些类是 java.io
包的一部分,用于 Java 中的文件处理。
将数据存储到文件中对于永久存储非常有用。在 Java 中,有四个类可以用于读取文件:FileReader
、Scanner
、FileInputStream
和 BufferedReader
。这些类是 java.io
包的一部分,用于 Java 中的文件处理。
首先创建一个示例 .txt
文件用于读取。你可以使用任何文本编辑器来创建这个文件,文件中可以包含任何你想要读取的数据。例如:
This is the sample data stored in a file
Rahul:10025
Sohan:10026
Madan:10027
Jack:10028
为了读取文件并将其内容转换为字符串,你需要导入以下类:
import java.io.*;
使用 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
,然后使用 \\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
类直接从文件中读取数据到字节数组中。创建一个指定大小的缓冲区(在我们的示例中为 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
类以简单的方式从文件中读取数据。它会一次性读取所有数据,然后你可以使用 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
中。实现这一目标有多种方法,包括使用 FileReader
、Scanner
、FileInputStream
和 BufferedReader
类。我们建议你自己尝试这些方法,以便理解它们的工作原理,并确定哪种方法最适合你的具体用例。记得测试你的代码并验证文本文件的路径。