うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

javaのファイルに改行を書き込むときのほんのちょっとした違いについて

スポンサーリンク

PrintWriterつかって指定ファイルに追記をしているのですが,最後の改行をどうするかで微妙に変な文字が入ったりします.

PrintWriter pw = new PrintWriter(new BufferedWriter(
    new OutputStreamWriter(new FileOutputStream(path, true),
    "UTF-8")));

上のように定義して,改行を書き込んでみます.

  • こうすると,Emacsで開いた時^Mという文字がはいってしまいました.
pw.println();
  • この書き方なら,なんの問題もありませんでした.
pw.print("\n");

あと,どうもUTF-8で保存できてないっぽい.OutputStreamで指定するのだと思っていたが,なぜ?