私見受け入れられた答えは、意図が文字を書くことであるという事実を考慮していません。(トピックが古いことは知っていますが、同じトピックを検索しているときに、アドバイスされた解決策を見つける前にこの投稿に出くわしたため、ここに投稿しています。)
FileOutputStream
docsから、FileOutputStream
バイトを出力したいときに使用します。
FileOutputStream は、画像データなどの raw バイトのストリームを書き込むためのものです。文字のストリームを書き込むには、FileWriter の使用を検討してください。
さらに、BufferedWriter
ドキュメントから:
迅速な出力が必要でない限り、FileWriters や OutputStreamWriters など、write() 操作にコストがかかる可能性のある Writer を BufferedWriter でラップすることをお勧めします。
最後に、答えは次のようになります (この他の 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 ステートメントを使用できます。宣言されたリソースを閉じるために finally ブロックは必要ありません。これは、自動的に処理され、冗長性も少ないためです。
try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("writePath", true)))) {
out.println("the text");
}catch (IOException e) {
System.err.println(e);
}