是否在Java中定义了Newline常量,如C#中的Environment.Newline?

时间:2008-10-29 14:43:35

标签: java

在C#中,静态属性Environment.Newline根据运行平台而改变。

Java中有类似内容吗?

3 个答案:

答案 0 :(得分:249)

从Java 7(和Android API级别19)开始:

System.lineSeparator()

文档:Java Platform SE 7


对于旧版Java,请使用:

System.getProperty("line.separator");

有关其他属性,请参阅https://java.sun.com/docs/books/tutorial/essential/environment/sysprop.html

答案 1 :(得分:87)

从Java 7开始:

System.lineSeparator()
  

Java API : System.lineSeparator

     

返回依赖于系统的行分隔符字符串。它总是回归   相同的值 - 系统属性的初始值   line.separator。在UNIX系统上,它返回“\ n”;在Microsoft Windows上   系统返回“\ r \ n”。

答案 2 :(得分:57)

请注意,此属性并不像许多人认为的那样有用。例如,仅仅因为您的应用程序在Windows计算机上运行,​​并不意味着它正在读取的文件将使用Windows样式的行分隔符。许多网页包含“\ n”和“\ r \ n”的混合,已经从不同的来源拼凑而成。当您将文本作为一系列逻辑行读取时,应始终查找所有三种主要的行分隔符样式:Windows(“\ r \ n”),Unix / Linux / OSX(“\ n”)和pre-OSX Mac(“\ r”)。

当您编写文本时,您应该更关心文件的使用方式,而不是您正在运行的平台。例如,如果您希望人们在Windows记事本中读取该文件,则应使用“\ r \ n”,因为它只识别一种分隔符。