Посмотрите, что в тайнике, не применяя его [дубликат]

IMHO принятый ответ не учитывает тот факт, что намерение заключается в написании символов. (Я знаю, что тема старая, но так как при поиске той же темы я наткнулся на это сообщение, прежде чем найти рекомендуемое решение, я размещаю здесь.)

Из FileOutputStream docs , вы используете FileOutputStream, когда хотите печатать байты.

FileOutputStream предназначен для записи потоков необработанных байтов, таких как данные изображения. Для записи потоков символов используйте FileWriter.

blockquote>

Кроме того, из BufferedWriter docs :

Если приглашение не выводится требуется, чтобы BufferedWriter обертывал вокруг любого Writer, чьи операции write () могут быть дорогостоящими, например FileWriters и OutputStreamWriters.

blockquote>

Наконец, ответ будет следующим (как упоминалось выше) в этом другом сообщении StackOverFlow ):

PrintWriter out = null;
try {
    out = new PrintWriter(new BufferedWriter(new FileWriter("writePath", true)));
    out.println("the text");
}catch (IOException e) {
    System.err.println(e);
}finally{
    if(out != null){
        out.close();
    }
} 

Кроме того, с Java 7 вы можете использовать оператор try-with-resources. Окончательный блок не требуется для закрытия объявленного ресурса (-ов), поскольку он обрабатывается автоматически, а также менее подробен:

try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("writePath", true)))) {
    out.println("the text");
}catch (IOException e) {
    System.err.println(e);
}
blockquote>

1512
задан Konrad Rudolph 1 February 2018 в 12:25
поделиться