Existe uma constante Newline definida em Java como Environment.Newline em C #?

199

Em C #, há a propriedade estática Environment.Newline que foi alterada dependendo da plataforma em execução.

Existe algo semelhante em Java?

orj
fonte
2
Techniczly você deve perguntar: Como o Java representam a propriedade novaLinha que c # implementado como Environment.NewLine quando ele foi criado
Peter
5
agora que eu reli minha declaração eu quero saber porque eu também me pergunto o que eu estava pensando
Peter

Respostas:

88

A partir do Java 7:

System.lineSeparator()

API Java: System.lineSeparator

Retorna a cadeia separadora de linhas dependente do sistema. Ele sempre retorna o mesmo valor - o valor inicial da propriedade do sistema line.separator. Nos sistemas UNIX, ele retorna "\ n"; nos sistemas Microsoft Windows, ele retorna "\ r \ n".

J.Steve
fonte
60

Esteja ciente de que essa propriedade não é tão útil quanto muitas pessoas pensam que é. Só porque seu aplicativo está sendo executado em uma máquina Windows, por exemplo, não significa que o arquivo que está lendo estará usando separadores de linha no estilo Windows. Muitas páginas da web contêm uma mistura de "\ n" e "\ r \ n", tendo sido remendadas de fontes diferentes. Ao ler o texto como uma série de linhas lógicas, você deve sempre procurar os três principais estilos de separador de linhas: Windows ("\ r \ n"), Unix / Linux / OSX ("\ n") e Mac pré-OSX ("\ r").

Ao escrever texto, você deve se preocupar mais com a forma como o arquivo será usado do que em qual plataforma você está executando. Por exemplo, se você espera que as pessoas leiam o arquivo no Bloco de Notas do Windows, use "\ r \ n" porque ele reconhece apenas o tipo de separador.

Alan Moore
fonte
O Mac pré-OSX ("\ r") ainda está em uso? Ou é verdade dizer que pode ser "esquecido" com segurança?
Pacerier
6
Bem, independentemente de as máquinas ainda estarem em uso, você deve assumir que ainda existem documentos escritos em Macs pré-OSX. Eu sei que é tentador para encurtar (?:\r?\n|\r)a (?:\r?n), mas não, eu não acho que é seguro. Eu prefiro (?:\r\n|[\r\n])assim mesmo; Eu sei que são mais personagens, mas parece mais arrumado. : D E se você não se importa com quantos separadores de linha consome, [\r\n]+funciona bem.
Alan Moore