java - ¿Cómo obtengo un nuevo carácter de línea dependiente de la plataforma?
cross-platform newline (9)
Además de la propiedad line.separator, si está utilizando java 1.5 o posterior y String.format (u otros métodos de formato ) puede usar %n
como en
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 ^^
Ver la API de Java 1.8 para Formatter para más detalles.
¿Cómo obtengo una nueva línea dependiente de la plataforma en Java? No puedo usar "/n"
todas partes.
Esto también es posible: String.format("%n")
.
O String.format("%n").intern()
para guardar algunos bytes.
Evite agregar cadenas utilizando String + String, use StringBuilder en su lugar.
String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );
Java 7 ahora tiene un método System.lineSeparator()
.
La biblioteca commons-lang tiene un campo constante disponible llamado SystemUtils.LINE_SEPARATOR
Puedes usar
System.getProperty("line.separator");
para obtener el separador de linea
Si está escribiendo en un archivo, utilizando una instancia de BufferedWriter
, use el método newLine()
de esa instancia. Proporciona una forma independiente de la plataforma para escribir la nueva línea en un archivo.
Si está intentando escribir una nueva línea en un archivo, simplemente podría usar el método newLine() BufferedWriter.
StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();
El fragmento de código anterior tendrá dos cadenas separadas por una nueva línea, independientemente de las plataformas.