Javaでプラットフォームに依存する改行を取得する方法どこでも"\n"
を使うことはできません。
Line.separatorプロパティーに加えて、Java 1.5以降および String.format (またはその他の format methods)を使用している場合は、以下のように%n
を使用できます。
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c);
//Note `%n` at end of line ^^
String s2 = String.format("Use %%n as a platform independent newline.%n");
// %% becomes % ^^
// and `%n` becomes newline ^^
詳しくは Java 1.8 API for Formatter を参照してください。
Java 7には System.lineSeparator()
メソッドが追加されました。
あなたが使用することができます
System.getProperty("line.separator");
行区切り文字を取得する
ファイルに改行を書き込もうとしているのなら、BufferedWriterの newLine() メソッドを使うことができます。
これも可能です:String.format("%n")
。
またはString.format("%n").intern()
でバイトを節約できます。
BufferedWriter
インスタンスを使用してファイルに書き込む場合は、そのインスタンスのnewLine()
メソッドを使用してください。プラットフォームに依存しない方法でファイルに新しい行を書き込むことができます。
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
上記のコードでは、プラットフォームに関係なく、2つの文字列が改行で区切られています。