import java.io.*;
public class RWTest {
public static void main(String[] args) {
RWTest test = new RWTest();
boolean couldInsert = test.addHighScore("Carol", 90);
System.out.println("couldInsert = " + couldInsert);
}
private static boolean addHighScore(String newPlayer, double s) {
double lowest = 0;
String[][] previous = new String[5][2];
String[][] newScores = new String[5][2];
try {
String dataFile = "rwTest.txt";
FileReader in = new FileReader(dataFile);
BufferedReader readFile = new BufferedReader(in);
lowest = Double.parseDouble(readFile.readLine());
if(s < lowest) {
readFile.close();
return false;
}
for (int i=0; i<5; i++) {
previous[i][0] = readFile.readLine();
previous[i][1] = readFile.readLine();
}
readFile.close();
} catch (IOException e) {
System.out.println("Problem reading file.");
System.err.println("IOException: " + e.getMessage());
}
print(previous, "previous:");
// Initialize newScores elements.
for (int i=0; i<5; i++) {
if (s < Double.parseDouble(previous[i][1])) {
newScores[i][0] = previous[i][0];
newScores[i][1] = previous[i][1];
} else {
newScores[i][0] = newPlayer;
newScores[i][1] = Double.valueOf(s).toString();
for (int k=i+1; k<5; k++) {
newScores[k][0] = previous[k-1][0];
newScores[k][1] = previous[k-1][1];
}
break;
}
}
lowest = Double.valueOf(newScores[newScores.length-1][1]).doubleValue();
print(newScores, "newScores:");
try {
String outFilePath = "rwTestResult.txt";
FileWriter out = new FileWriter(outFilePath);
BufferedWriter writeToFile = new BufferedWriter(out);
writeToFile.write(new Double(lowest).toString());
writeToFile.newLine();
for (int i=0; i<5; i++) {
writeToFile.write(newScores[i][0]);
writeToFile.newLine();
writeToFile.write(newScores[i][1]);
writeToFile.newLine();
}
writeToFile.close();
} catch (IOException e) {
System.out.println("Problem writing file.");
System.err.println("IOException: " + e.getMessage());
}
return true;
}
private static void print(String[][] array, String s) {
System.out.println("----- " + s + " -----");
for(int i = 0; i < array.length; i++) {
System.out.printf("%5s %s%n", array[i][0], array[i][1]);
}
System.out.println("-------------------");
}
}