Я пытаюсь создать метод рекордов для одной из моих программ, но он не работает так, как я этого хочу. Проблема im заключается в том, как сообщить программе, из какой строки в файле txt (файл Highscore) он должен писать.Как написать конкретную строку в текстовом файле?
Я сделал следующим образом:
Я создал метод, который определяет количество строк в файле
public static int countline (String filnamn)throws IOException {
BufferedReader inström1 = new BufferedReader
(new FileReader(filnamn));
int lines = 0;
while(inström1.readLine() != null) {
++lines;
}
inström1.close();
return lines;
}
Тогда я попытался, используя цикл, чтобы распечатать счет на текст файл каждый раз программа попадает в пустое пространство в текстовом файле:
PrintWriter utström1 = new PrintWriter
(new BufferedWriter
(new FileWriter("Highscores")));
for(int i = 0; i < countline("Highscores")+1; i++) {
if(inström1.readLine() == null) {
utström1.println(namn + ", " + (double)100*rätt/(rätt+fel) + "% rätt" + "\n");
}
}
utström1.close();
Когда я запускаю программу, она только записывает за последний топ-лист в файле. Как я могу это исправить?
Вы открываете файл в режиме записи, это приведет к созданию файла в случае его существования. Попробуйте открыть в режиме добавления. –