Есть ли константа Newline, определенная в Java, как Environment.Newline в C #? - PullRequest
182 голосов
/ 29 октября 2008

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

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

Ответы [ 3 ]

249 голосов
/ 29 октября 2008

Начиная с Java 7 (и уровня API Android 19):

System.lineSeparator()

Документация: Java Platform SE 7


Для более старых версий Java используйте:

System.getProperty("line.separator");

См. https://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html для других свойств.

87 голосов
/ 13 мая 2015

Начиная с Java 7:

System.lineSeparator()

API Java: System.lineSeparator

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

57 голосов
/ 29 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...