Javaで改行コードを指定する際、「\r\n」や「\n」というように直接ハードコーディングする方法と「System.getProperty(“line.separator”)」を使用する方法があります。
ファイルに出力する場合などの用途の場合、そのファイルを使用する先のプラットフォームに合わせて「\r\n」や「\n」というように直接ハードコーディングする必要があります。
一方同じプラットフォーム内のJavaなどで動く画面のメッセージなどに埋め込む用途で使用する場合はプラットフォームに依存しないように「System.getProperty(“line.separator”)」を使用を推奨します。
いずれにせよどういう用途で使用するかを明確に仕様確認した上で用途に合わせて改行コードを設定することが重要なので柔軟に対応出来るように心掛けることが大事です。
直接ハードコーディングする方法のコーディング例
1 2 3 4 5 6 7 8 9 |
/** * <p>[概 要] 改行コードの取得(ハードコーディング)/p> * <p>[詳 細] </p> * <p>[備 考] </p> */ public static String getLineCd2() { String lineCd = "\r\n"; return lineCd; } |
System.getProperty(“line.separator”)のコーディング例
1 2 3 4 5 6 7 8 9 |
/** * <p>[概 要] 改行コードの取得(System.getProperty)/p> * <p>[詳 細] </p> * <p>[備 考] </p> */ public static String getLineCd() { String lineCd = System.getProperty("line.separator"); return lineCd; } |
補足:改行コードの種類
改行コードの種類にはプラットフォームによって以下の様なパターンがあります。
- Windows:\r\n
- Unix:\n
- Mac:\n\r
悪いコーディング例と良いコーディング例が逆に思います。
改行コードは文字列のファイル出力を行う場合などに使用すると思いますが、
System.getProperty(“line.separator”);
としてしまうと、プラットフォームによって改行コードが変化してしまいます。
一方、
“\r\n”;
とハードコーディングしてしまえばプラットフォームに限らず改行コードを一定に保つことができます。
おしん さん
ご指摘ありがとうございます。
記事内容を見直した結果、一概に良い悪いとは断言出来ず、
用途に応じて使い分けるのが重要という見解なので記事内容を修正しましたm(_ _)m