Write a program called Grid. The program starts by prompting (asking) the user for the name of an input text file.
This file is guaranteed to be correct and has the following format
Paul di Resta
The above 4 lines make up what is known as a record. This means that if there is an integer, then the other 3 lines of the record are also present.
There may be any number of records in the input text file. There are NO blank lines between records and no blank line at the end of the file.
The output of this program is that there is a text file with the records sorted in order, with the lowest time at the start of the file, followed by records with increasing times, so that the record with the largest time is at the end of the file.
Note: you are NOT allowed to solve this problem using data structures that have not yet been covered in this unit, such as arrays or linked lists. You may only use methods from the String class, the Scanner class, the PrintWriter class, the PrintStream and the File class (along with as many temporary text files as may be needed).
One possible approach is to read the first record from the input file. Then, inside a loop, read the next record. Now compare the times, if the first record's time is less than the second record's time, write the first record into the temporary file and set all the values of the first record equal to the values of the second record.
That is, the variable that holds the time of record 1, now has the value of the variable that holds the time of record 2, copied into it and so on for the other variables used to store the values read from the file.
This is because the program is going through the loop again and will read a new set of values into the variables that hold record 2 values.
If the time of record 2 is less than the time of record 1, just write the contents of record 2 into the output file, there is nothing to change in record 1.
Keep reading records from the input file and writing to the output file until the program reaches the end of the input file. Do not forget to write the last record into the output file. Now close both the input and output files.
Swap the file names so that the input file becomes the output file name and the output file name becomes the input file name.
Re open both the files.
Go back through the process described above once again.
Eventually the input file will be sorted. This means that the program will go through the entire input file without making a single swap (time 1 will always be < time 2)
Once this happens it means that the records in the file are properly sorted and the program can stop.
Note: the above approach is one way of solving the problem, but you may use another approach if you wish.