【发布时间】:2019-03-27 01:42:20
【问题描述】:
我正在使用 Java 中的 BufferedReader,希望在读取整数方面得到一些指导。
总而言之,输入文件的每一行将代表无向图中的一条边。它将包含两个整数,即边的端点,后跟一个实数,即边的权重。最后一行将包含 -1,表示输入结束。
我已经创建了一个 BufferedReader 对象并初始化了一个整数变量和
文件格式如下:
0 1 5.0
1 2 5.0
2 3 5.0
...
5 10 6.0
5 11 4.0
17 11 4.0
-1
public static void processFile(String inputFilePath) throws IOException {
//Check to see if file input is valid
if (inputFilePath == null || inputFilePath.trim().length() == 0) {
throw new IllegalArgumentException("Error reading file.");
}
//Initialize required variables for processing the file
int num = 0;
int count = 0;
try {
//We are reading from the file, so we can use FileReader and InputStreamReader.
BufferedReader fileReader = new BufferedReader(new FileReader(inputFilePath));
//Read numbers from the line
while ((num = fileReader.read()) != -1) { //Stop reading file when -1 is reached
//First input is the start
//Second input is the end
//Third input is the weight
}
} catch (IOException e) {
throw new IOException("Error processing the file.");
}
}
这是我迄今为止所尝试的,但我想知道如何获取每一行代码,并将第一个数字作为“开始”变量,第二个数字作为“结束”变量,第三个数字是“重量”变量吗?我在网上看到了一些创建数组的解决方案,但由于我的文件格式,我有些困惑。我可以帮助澄清有关的任何细节
【问题讨论】:
-
使用
while ((line = fileReader.readLine()) != null) {,然后解析该行以提取3个数字。
标签: java file io integer bufferedreader