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. Окончательный блок не требуется для закрытия объявленного ресурса (-ов), поскольку он обрабатывается автоматически, а также менее подробен:
blockquote>try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("writePath", true)))) { out.println("the text"); }catch (IOException e) { System.err.println(e); }