¿Hay una constante Newline definida en Java como Environment.Newline en C #?

199

En C # está la propiedad estática Environment.Newline que cambió según la plataforma en ejecución.

¿Hay algo similar en Java?

orj
fuente
2
Técnicamente, debe preguntar: ¿Cómo representa Java la propiedad newLine que C # implementó como Environment.Newline cuando se creó
Peter
55
ahora que releí mi declaración, me pregunto por qué yo también me pregunto qué estaba pensando
Peter

Respuestas:

88

A partir de Java 7:

System.lineSeparator()

API de Java: System.lineSeparator

Devuelve la cadena del separador de línea dependiente del sistema. Siempre devuelve el mismo valor: el valor inicial de la propiedad del sistema line.separator. En sistemas UNIX, devuelve "\ n"; en sistemas Microsoft Windows devuelve "\ r \ n".

J.Steve
fuente
60

Tenga en cuenta que esta propiedad no es tan útil como mucha gente piensa que es. El hecho de que su aplicación se ejecute en una máquina con Windows, por ejemplo, no significa que el archivo que está leyendo utilizará separadores de línea de estilo Windows. Muchas páginas web contienen una mezcla de "\ n" y "\ r \ n", que han sido improvisadas de fuentes dispares. Cuando lea el texto como una serie de líneas lógicas, siempre debe buscar los tres estilos principales de separación de líneas: Windows ("\ r \ n"), Unix / Linux / OSX ("\ n") y Mac pre-OSX ("\ r").

Cuando escribe texto, debe preocuparse más por cómo se usará el archivo que por la plataforma en la que se está ejecutando. Por ejemplo, si espera que las personas lean el archivo en el Bloc de notas de Windows, debe usar "\ r \ n" porque solo reconoce un tipo de separador.

Alan Moore
fuente
¿La Mac pre-OSX ("\ r") todavía se usa en la práctica? ¿O es cierto decir que se puede "olvidar" con seguridad?
Pacerier
66
Bueno, ya sea que las máquinas mismas estén o no en uso, debe suponer que todavía hay documentos escritos en Macs anteriores a OSX. Sé que es tentador para acortar (?:\r?\n|\r)a (?:\r?n), pero no, no creo que sea seguro. Prefiero de (?:\r\n|[\r\n])todos modos; Sé que son más personajes, pero se ve más ordenado. : D Y si no le importa cuántos separadores de línea consume, [\r\n]+funciona bien.
Alan Moore