我正在开发一个用Java实现和Adjacency Matrix的程序。我读了一个城市名称的txt文件来添加顶点,然后我有另一个txt文件,其中每一行是两个城市名称和两个城市之间的距离。以下是边缘txt文件的前5行。
Chicago Boston 851
芝加哥布法罗454
达拉斯芝加哥803
达拉斯克利夫兰1025
芝加哥克利夫兰308
我正在使用使用文件阅读器和缓冲阅读器的简单方法一次读取3行。然后我解析第三行,即距离(即454)。我得到了一个NumberFormatException,但奇怪的是我直到达到“达拉斯芝加哥803”这一行才得到它。 为什么它会正确读取前两个然后停在第三个?我将发布代码部分和下面的例外。
//Read input from the cities_mileage.txt file, which contains the info for adding edges
//Call addEdge in Graph class until file it empty
FileReader file2 = new FileReader("F:/MinSpan/resources/city_mileage.txt");
BufferedReader reader2 = new BufferedReader(file2);
String line2 = reader2.readLine();
String line3 = reader2.readLine();
String line4 = reader2.readLine();
double doubleMile = Double.parseDouble(line4);
while (line2 != null && line3 != null && line4 != null ) //Example: line 2 = Chicago, line 3 = Boston, line4 = 851
{
graph.addEdge(line2, line3, doubleMile);
line2 = reader2.readLine();
line3 = reader2.readLine();
line4 = reader2.readLine();
doubleMile = Double.parseDouble(line4);
}