Я тщетно пытался сравнить результаты в моем приложении с результатами, уже сохраненными в отдельном текстовом файле. Сравнение счета достаточно просто, когда строки не задействованы, но когда я сохраняю счет и присваиваю ему имя, программа не работает, так как не может анализировать строки и целые числа.
Пример текстового файла:
Name, 8
Name, 1
Name, 4
Код, который я использую для сравнения:
int highScore = 0;
try {
BufferedReader reader = new BufferedReader(new FileReader("txt.txt"));
String line = reader.readLine();
while (line != null)
{
try {
int score = Integer.parseInt(line.trim());
if (score > highScore)
{
highScore = score;
}
} catch (NumberFormatException e1) {
//ignore invalid scores
//System.err.println("ignoring invalid score: " + line);
}
line = reader.readLine();
}
reader.close();
} catch (IOException ex) {
System.err.println("ERROR");
}
Остальная часть кода в порядке, и счет генерируется, когда игра заканчивает сравнивать его со счетом в файле, он просто генерирует значение 0 при сравнении, поскольку читает строку и не работает. Я не уверен, как использовать сканеры / разделители.
EDIT:
Я хотел бы, чтобы программа выполнялась и показывала имя пользователя, который получил этот рекорд. Таким образом, желаемый результат будет;
The all time high score was 8 by Name1
В настоящее время он говорит только рекорд (после ввода Michu93).