I am working with BufferedReader in Java and was hoping for some guidance when it comes to reading integers.
To summarize, each line of the input file will represent one edge in an undirected graph. It will contain two integers, the endpoints of the edge, followed by a real number, the weight of the edge. The last line will contain a -1, to denote the end of input.
I have created a BufferedReader object and initialized an integer variable and
The format of the file is as follows:
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.");
}
}
This is what I have attempted thus far, but I wondering how I can take each line of code, and have the first number be the "start" variable, the second number be the "end" variable, and the third number be the "weight" variable? I saw some solutions online to create an array but because of the format of my file I am somewhat confused. I can help clarify any details about
while ((line = fileReader.readLine()) != null) {, then parse the line to extract the 3 numbers.