Java如何读取txt数字文件
问题描述
假设我们有一个txt文件,其中包含一些数字,每个数字占据一行。我们的目标是使用Java程序读取这个文件,并将其中的数字存储在一个数据结构中,以便后续的处理和分析。
方案
为了解决这个问题,我们可以按照以下步骤进行:
- 打开文件并创建一个文件读取器(FileReader)对象。
- 创建一个缓冲区输入流(BufferedReader)对象,将文件读取器作为参数传入。
- 逐行读取文件内容,将每一行解析为数字,并将其存储在合适的数据结构中。
- 关闭缓冲区输入流和文件读取器。
下面是一个示例代码,演示了如何实现这个方案:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ReadNumberFile {
public static void main(String[] args) {
String fileName = "numbers.txt";
List<Integer> numbers = new ArrayList<>();
try (FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
String line;
while ((line = bufferedReader.readLine()) != null) {
int number = Integer.parseInt(line);
numbers.add(number);
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
System.out.println("Numbers in the file: " + numbers);
}
}
在这个示例代码中,我们假设存在名为numbers.txt
的文本文件,其中包含一些数字,每个数字占据一行。我们使用FileReader
和BufferedReader
来读取文件内容。逐行读取文件内容时,我们使用Integer.parseInt()
方法将每一行解析为整数,并将其添加到一个List
数据结构中。
流程图
下面是一个描述上述方案的流程图:
journey
title Java读取txt数字文件
section 打开文件
- 创建文件读取器对象
- 创建缓冲区输入流对象
section 读取文件内容
- 逐行读取文件内容
- 解析每行为数字
- 存储数字到数据结构
section 关闭流
- 关闭缓冲区输入流对象
- 关闭文件读取器对象
section 输出结果
- 打印存储的数字
代码解析
首先,我们定义了一个ReadNumberFile
类,并在main
方法中实现了具体的解决方案。
在main
方法中,我们使用了FileReader
和BufferedReader
来读取文件内容。这两个类都实现了AutoCloseable
接口,因此我们可以使用try-with-resources
语句来自动关闭流。
try (FileReader fileReader = new FileReader(fileName);
BufferedReader bufferedReader = new BufferedReader(fileReader)) {
// 代码...
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
在try
代码块中,我们创建了一个FileReader
对象和一个BufferedReader
对象,并将文件名作为参数传递给FileReader
构造函数。我们使用BufferedReader
来读取文件内容。
在一个while
循环中,我们使用readLine()
方法逐行读取文件内容。当读取到文件结尾时,readLine()
方法将返回null
,从而结束循环。
在循环的每一次迭代中,我们使用Integer.parseInt()
方法将每一行解析为整数,并使用numbers.add(number)
将其添加到numbers
列表中。
String line;
while ((line = bufferedReader.readLine()) != null) {
int number = Integer.parseInt(line);
numbers.add(number);
}
最后,在try
代码块之外,我们使用System.out.println()
打印存储的数字。
总结
通过使用FileReader
和BufferedReader
,我们可以很容易地读取包含数字的文本文件,并将其存储在Java程序中的合适的数据结构中。这样,我们就可以进一步处理和分析这些数字,以满足特定的需求。
希望这份方案对你有所帮助!