Есть ли константа Newline, определенная в Java, например Environment.Newline в С#?

В С# существует статическое свойство Environment.Newline, которое изменилось в зависимости от запущенной платформы.

Есть ли что-то подобное в Java?

Ответ 2

По состоянию на Java 7:

System.lineSeparator()

Java API: System.lineSeparator

Возвращает системную строку разделителя строк. Он всегда возвращает то же значение - начальное значение свойства системы line.separator. В системах UNIX он возвращает "\n"; в Microsoft Windows система возвращает "\ r\n".

Ответ 3

Помните, что это свойство не так полезно, как многие думают. Например, потому, что ваше приложение работает на компьютере под управлением Windows, это не означает, что файл, который он читает, будет использовать разделители строк в стиле Windows. Многие веб-страницы содержат смесь "\n" и "\ r\n" , которые были вымощены из разных источников. Когда вы читаете текст как последовательность логических строк, вы всегда должны искать все три основных стили разделителя строк: Windows ( "\ r\n" ), Unix/Linux/OSX ( "\n" ) и pre-OSX Mac ( "\ r" ).

Когда вы пишете текст, вы должны больше заботиться о том, как будет использоваться файл, чем на той платформе, на которой вы работаете. Например, если вы ожидаете, что люди прочитают файл в Блокноте Windows, вы должны использовать "\ r\n" , потому что он распознает только один вид разделителя.