Невозможно добавить данные в файл с помощью BufferedWriter

Это перезапись всего файла. Как добавить содержимое в существующий файл «Data.txt»?

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class WriteToFile {
    public static void main(String[] args) 
    {
        try 
        {
            String content = "This is the content to write into file";
            BufferedWriter bw = new BufferedWriter(new FileWriter("Data.txt", true));
            bw.append(content);
            System.out.println("Done");
            bw.close();
        } catch (IOException e) 
        {
            e.printStackTrace();
        }
    }
}

person codepk    schedule 29.09.2013    source источник
comment
Если я запущу его n раз, я должен получить n раз. Это содержимое для записи в файл. Я получаю только один раз?   -  person codepk    schedule 29.09.2013
comment
Тогда вы не показываете код, который на самом деле используете. Вышеприведенное в настоящее время добавит строку к существующему содержимому файла. Обратите внимание, он добавляет его в той же строке.   -  person Sotirios Delimanolis    schedule 29.09.2013
comment
где посмотреть файл? возможно, вам просто нужно обновить буфер редактора. закройте файл и снова откройте т.   -  person A4L    schedule 29.09.2013
comment
Странно, сейчас работает. Я забыл закрыть поток. Закроет ли bw.close() все вложенные потоки?   -  person codepk    schedule 29.09.2013
comment
Да, так как все системные ресурсы должны быть освобождены при вызове этого метода. Если бы другие вложенные потоки оставались открытыми, они были бы недействительны, поэтому нет смысла оставлять их открытыми. См. javadoc для Closeable# закрыть()   -  person A4L    schedule 29.09.2013


Ответы (1)


Хотя у меня твой код работает. Можно проверить другим способом. Обмотал BufferedWriter PrintWriter и бегом.

 String content = "This is the content to write into file";
 PrintWriter out =new PrintWriter(new BufferedWriter(new FileWriter("Data.txt", true)));
 out.append(content);
 out.close();
person Masudul    schedule 29.09.2013