web-dev-qa-db-ja.com

プラットフォーム依存の改行文字をどうやって取得するのですか?

Javaでプラットフォームに依存する改行を取得する方法どこでも"\n"を使うことはできません。

515
Spoike

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 を参照してください。

351
Alex B

Java 7には System.lineSeparator() メソッドが追加されました。

658

あなたが使用することができます

System.getProperty("line.separator");

行区切り文字を取得する

642
abahgat

ファイルに改行を書き込もうとしているのなら、BufferedWriterの newLine() メソッドを使うことができます。

43
Michael Myers

これも可能です:String.format("%n")

またはString.format("%n").intern()でバイトを節約できます。

29
ceving
22
lexicalscope

BufferedWriterインスタンスを使用してファイルに書き込む場合は、そのインスタンスのnewLine()メソッドを使用してください。プラットフォームに依存しない方法でファイルに新しい行を書き込むことができます。

12
Damaji kalunge
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();

上記のコードでは、プラットフォームに関係なく、2つの文字列が改行で区切られています。