Ввод/вывод Java: как добавить к уже существующему текстовому файлу

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

Есть ли способ получить уже созданный текстовый файл как объект, а затем добавить к нему?

Заранее спасибо.


person joepour    schedule 29.04.2010    source источник


Ответы (3)


Существует конструктор для FileWriter, который позволяет вам устанавливать добавление с помощью логического значения. javadoc

person Poindexter    schedule 29.04.2010
comment
С извинениями, я обновил вашу ссылку, чтобы она работала корректно (SO разрывается на пробеле), а также чтобы она ссылалась на текущую документацию 1.6, а не 1.4.2 (и по имени, а не по IP). +1, кстати - person T.J. Crowder; 29.04.2010
comment
@Т.Дж. спасибо, я видел, что он сломался, и пытался починить его в то же время. - person Poindexter; 29.04.2010
comment
Не волнуйтесь. Я много ссылаюсь на документы JDK, поэтому знаю ловушку (замените пробел на %20). - person T.J. Crowder; 29.04.2010
comment
Спасибо, я не знал о втором параметре - новичок в этом языке :) - person joepour; 29.04.2010

Обычно вместо FileWriter (уже предложенного) лучше использовать FileOutputStream, который также (как и FileWriter ) имеет параметр append в одном из своих конструкторов и который (в отличие от FileWriter) не принимает молчаливо кодировка по умолчанию (немного плохая практика IMO).

Из документа FileWriter:

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

person leonbloy    schedule 29.04.2010
comment
+1: отсутствие альтернативного конструктора для FileWriter, позволяющего указать кодировку, делает класс почти бесполезным. - person Michael Borgwardt; 29.04.2010

Взгляните на java.io.FileWriter. Установка append в true должна помочь.

person Robert Petermeier    schedule 29.04.2010