改行コードを明示的に指定する
ファイルなどに書き出す改行コードはシステムプロパティの "line.separator" で定義されている。なので、この設定を変更すれば改行コードを変更することができる。
public void test() throws Exception { // default dump("a.txt"); // dos style System.setProperty("line.separator", "\r\n"); dump("b.txt"); // unix style System.setProperty("line.separator", "\n"); dump("c.txt"); } public void dump(String filename) throws Exception { BufferedWriter w = new BufferedWriter(new FileWriter(filename)); w.write("abcdefg"); w.newLine(); w.write("hijklmn"); w.newLine(); w.close(); }
ただしこの手法は JVM のシステムプロパティを使用するため設定変更が JVM 全体に影響してしまうという問題がある。
改行コードを簡単に切り替えたい場合になんかいい方法ってないのかな。自分で OutputStream や Writer をラップするしかないのだろうか。もっと簡単にできたらいいのに。ていうか何かありそうなもんだが。