2013-12-23 2 views
2

Итак, я использую систему, я сохраняю счет, сохраненный в файле .txt.Написание txt в файл без добавления

Счетчик является целым числом.

Единственная проблема, которую я имею, заключается в том, что вместо замены предыдущего счета; например

"78" -> "79" 

Это добавление нового счета к предыдущему счету; например

"78" -> "7879" 

Мой код:

private static void saveCount(int inCount) throws FileNotFoundException, IOException { 
    BufferedReader fbr = new BufferedReader(new FileReader("count.txt")); 
    try (FileWriter fw = new FileWriter("count.txt", (fbr.readLine() != null))) { 
     String count = Integer.toString(inCount); 
     fw.write(count); 
    } 
} 

ответ

3

Вы включаете эту директиву. Заменить (fbr.readLine()!=null) с false, чтобы отключить добавление, как показано ниже:

private static void saveCount(int inCount) throws FileNotFoundException, 
     IOException { 
    BufferedReader fbr = new BufferedReader(new FileReader("count.txt")); 
    try (FileWriter fw = new FileWriter("count.txt", false)) { 
     String count = Integer.toString(inCount); 
     fw.write(count); 
    } 
} 
+0

Не думаю, что это поможет обновить содержимое. –

+0

@JunedAhsan Он отлично работает. Возможно, что-то было нарушено в предыдущем редактировании? –

+1

Примечание: вы можете удалить «BufferedReader» из своего ответа, поскольку он больше не нужен. –

5

Второй параметр конструктора FileWriter является логический флаг append. Установите для него значение false, чтобы перезаписать файл вместо добавления.

1

Конструктор FileReader, который вы используете, имеет параметр append (of boolean). Если это правда - вы добавите содержимое файла (и получите 7879). Если это неверно - содержимое файла будет отменено.

Похоже, что fbr.readLine() не является нулевым, поэтому вы добавляете содержимое каждый раз.

1

Используйте BufferedWriter insted BufferedReader и закройте его, когда закончите.

BufferedWriter out = new BufferedWriter(new FileWriter("count.txt")); 
    out.write(Integer.toString(inCount)); 
    out.close(); 
Смежные вопросы