2015-10-05 3 views
1

Я пытаюсь создать метод рекордов для одной из моих программ, но он не работает так, как я этого хочу. Проблема 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(); 

Когда я запускаю программу, она только записывает за последний топ-лист в файле. Как я могу это исправить?

+0

Вы открываете файл в режиме записи, это приведет к созданию файла в случае его существования. Попробуйте открыть в режиме добавления. –

ответ

1

Если ваша цель состоит в том, чтобы добавить к существующему содержимому файла, вот как это можно сделать:

PrintWriter utström1 = new PrintWriter 
        (new BufferedWriter 
        (new FileWriter("Highscores", true))); 

Обратите внимание на логический аргумент в new FileWriter("Highscores", true), который указывает, что существующее содержимое файла не перезаписано, но будет добавлено.

2

Каждый раз, когда вы записываете в этот файл, содержимое этого файла становится чрезмерно высоким. Чтобы сохранить весь контент в письменном виде, вам необходимо добавить оценку в текстовый файл.

Смотрите следующую ссылку:

How to append text to an existing file in Java

Смежные вопросы