2015-02-27 3 views
0

Так у меня есть JFrame с кнопкой, которая обращается этот метод для записи строки в текстовый файл:Java - BufferedWriter перезапись линии выпуска

public static void writeTest(String item) { 
    File file = new File (directory + "TestFile.txt"); 
     try { 
      BufferedWriter out = new BufferedWriter(new FileWriter(file)); 
      out.write(item); 
      out.newLine(); 
      out.close(); 
     } catch (IOException e) { 

     } 
    } 

Эта часть работает отлично, но если я снова нажмите кнопку, он всегда будет писать по первой строке, хотя у меня есть newLine(); там. Я даже попытался поставить newLine(); до И после out.write(); , но он просто заменяет первую строку файла пробелом, а затем записывает строку «item» на второй строке. Я хочу, чтобы он написал строку String, сохранил ее в текстовом файле, и когда я пишу новую строку, он ADDS строку текста в файл, а не перезаписывает его.

+1

возможно дубликат [BufferedWriter записать в файл] (http://stackoverflow.com/questions/11543338/bufferedwriter-to-write-to-file) –

+0

Возможный дубликат [Java FileWriter с добавлением режима] (http://stackoverflow.com/questions/1225146/java-filewriter- с-append-mode) – Kenster

ответ

0

Запись файла в режиме добавления:

BufferedWriter out = new BufferedWriter(new FileWriter(file, true)); 

Здесь new FileWriter(file, true), правда, то флаг в режиме дописывания

+0

Спасибо! Это сработало, и я понимаю теперь для справок в будущем. – David

+0

@ Давид, любезно согласиться с ответом, поскольку он сработал для вас – Arvind

+0

Ха-ха, извините, я не мог понять, как выбрать ответ для моей жизни. Еще раз спасибо. – David

0

Открыть FileWriter в режиме добавления

+1

как это делается: 'BufferedWriter out = new BufferedWriter (новый FileWriter (файл, true));' – user432