¿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?


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".


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.


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.