System.getProperty("line.separator"); 之间的区别和“\n”?

Posted

技术标签:

【中文标题】System.getProperty("line.separator"); 之间的区别和“\\n”?【英文标题】:Difference between System.getProperty("line.separator"); and "\n"?System.getProperty("line.separator"); 之间的区别和“\n”? 【发布时间】:2016-08-16 05:18:21 【问题描述】:

在使用 Java FX 开发 GUI 时,在写入文件或从 Internet 获取数据期间,System.getProperty("line.separator");"\n" 似乎得到了不同的结果。基本上有什么区别?

【问题讨论】:

有几个密切相关的问题。我不确定一个人是否完全符合重复的条件,但至少,你的问题基本上在这里得到了回答:***.com/a/33505978/3182664 【参考方案1】:

System.getProperty("line.separator") 返回操作系统相关的行分隔符。

在 Windows 上返回 "\r\n",在 Unix 上返回 "\n"。因此,如果您想为当前操作系统生成带有行尾的文件,请使用System.getProperty("line.separator") 或使用PrintWriter 写入。

【讨论】:

那么,您认为哪个更好?请提出建议。 @TilakMadichetti 取决于用例。如果您想要当前操作系统的换行符,请使用第一种形式。你想写什么? 我想将大量单词写入一个文件,并且每个单词都有一个行间距。 @TilakMadichetti 如果您使用\n 生成换行符并在Windows 上用坏的编辑器(比如记事本)打开文件,则不会显示换行符。但同样优秀的编辑器将能够处理 unix 和 windows 换行符......【参考方案2】:

在Windows平台上,System.getProperty("line.separator")是"\r\n", “\n”(Linux 和 MacOS X)、“\r”(MacOS 9 及更早版本)

【讨论】:

你因为提到旧的\r 行分隔符而得到我的支持!【参考方案3】:

System.getProperty("line.separator") 取决于平台:

“\n”在 UNIX 风格的机器上 “\r\n”在 Windows 机器上

而“\n”只是“\n”。

【讨论】:

【参考方案4】:

«\n» 是大多数操作系统(如 Linux/Unix)的行分隔符。为确保与任何操作系统的兼容性,请使用 System.getproperty 查询此值

【讨论】:

以上是关于System.getProperty("line.separator"); 之间的区别和“\n”?的主要内容,如果未能解决你的问题,请参考以下文章

System.getProperty("line.separator"); 之间的区别和“\n”?

System.getProperty("line.separator") 和 "\n" 导致列表视图不填充

System.getProperty("user.dir"); 获得系统属性

由System.getProperty("user.dir")引发的联想

Java System.getProperty("java.runtime.version") 未正确报告

使用System.getProperty("user.dir")获取项目下的文件内容