java cross-platform newline eol

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( );




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.