web-dev-qa-db-fra.com

Comment obtenir un caractère de nouvelle ligne dépendant de la plate-forme?

Comment obtenir une nouvelle ligne dépendante de la plate-forme en Java? Je ne peux pas utiliser "\n" partout.

524
Spoike

Outre la propriété line.separator, si vous utilisez Java 1.5 ou une version ultérieure, ainsi que le String.format (ou autre mise en forme ) vous pouvez utiliser %n comme dans

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   ^^

Voir le API Java 1.8 pour Formatter pour plus de détails.

357
Alex B

Java 7 a maintenant une méthode System.lineSeparator() .

672
StriplingWarrior

Vous pouvez utiliser

System.getProperty("line.separator");

pour obtenir le séparateur de ligne

644
abahgat

Si vous essayez d'écrire une nouvelle ligne dans un fichier, vous pouvez simplement utiliser la méthode newLine () de BufferedWriter.

43
Michael Myers

Ceci est également possible: String.format("%n").

Ou String.format("%n").intern() pour sauvegarder des octets.

29
ceving

La bibliothèque commons-lang a un champ constant appelé SystemUtils.LINE_SEPARATOR

22
lexicalscope

Si vous écrivez dans un fichier à l'aide d'une instance BufferedWriter, utilisez la méthode newLine() de cette instance. Il fournit un moyen indépendant de la plate-forme pour écrire la nouvelle ligne dans un fichier.

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

L'extrait ci-dessus aura deux chaînes séparées par une nouvelle ligne, quelles que soient les plates-formes.