Добавление к файлу в utf8

Для проекта мне нужно добавить текстовый файл с использованием кодировки UTF-8. Во время моего исследования я нашел две возможности:

BufferedWriter out = new BufferedWriter(
    new OutputStreamWriter(new FileOutputStream("file.txt), "UTF-8")
)

Это запишет в мой файл в UTF-8, но перезапишет его, а не добавит к нему, если он уже существует.

Затем я нашел код для добавления к существующему файлу с параметром в FileWriter, но это не будет явно использовать UTF-8, а не использовать системный набор символов по умолчанию:

BufferedWriter out = new BufferedWriter(new FileWriter("myfile.txt", true))

Теперь мне нужна возможность определить ОБА кодировку, а также добавление в файл. Просто полагаться на системную кодировку или менять это не вариант.

Какие-нибудь мысли?


person Timothy Grützner    schedule 10.08.2017    source источник
comment
см. этот ответ: stackoverflow.com/questions/30307382/   -  person diginoise    schedule 10.08.2017


Ответы (1)


Вы забыли добавить параметр true в конструктор FileOutputStream:

BufferedWriter out = new BufferedWriter(
    new OutputStreamWriter(
        new FileOutputStream("file.txt", true), // true to append
        StandardCharsets.UTF_8                  // Set encoding
    )
);
person vnea    schedule 10.08.2017
comment
ах! Видимо я упустил возможность установить его на FileOutputStream, смотрел только вариант FileWriter. - person Timothy Grützner; 10.08.2017