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

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

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

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

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