PrintWriterのCR/LF出力 |
=============================================
どうもPGが上手く動かなかったのがとりあえず動くようになったけど、なんだか腑に落ちない。
・CR/LF (またはLFのみ) を行末に設定してconcatenateしたStringをOutputStreamWriterにPrintWriter.printする
を
・一行づつprintlnする
に変えたらOKになった。
以前、環境によって改行はCR/LF またはLFとなるので、改行文字を設定するよりprintlnしたほうがよいとなにかに書いてあったのを見た気はするのだけど、メソッドの中で結局CRLFまたはLFを設定しているのでは?と思うと腑に落ちない。=============================================
改行がLF(UNIX)かCR(Mac)かCRLF(Win)かはOS依存。\nとだけ書くと、LFのみとなり、環境と合わない場合がある。
この場合、環境に合わせて\r(CR)を付与するよりも、BufferedWriter(等?)のnewLine()メソッドを利用してJavaに環境に応じた改行を出力させたほうが、環境依存度の少ないコードになる。
…ということだとおもふ。
昨日の文字コードお勉強の副産物で、3月に発生していた疑問が解けましたとさ(これであっていれば)。めでたしめでたし。そういえばこのブログも2月2日オープン以来もう5ヶ月もやってるんだなぁ。ちなみに今日は7月14日。