0

我正在写入一个文本文件,我正在使用System.getProperty(line.separator);转到下一行。

FileWriter fw = new FileWriter(file,true);
   fw.write("Correct Fields are:"+System.getProperty("line.separator")+"\r\n");

"\n"之前没有工作所以我在网上搜索并找到了"\r\n"

是什么"\r\n"?它是记事本专用的吗?

4

6 回答 6

2

“换行符”的概念在不同系统上的处理方式不同。

为了(过度)简化事情:Windows 使用 CRLF(\r\n),UNIX 和大多数其他流行的现代系统只使用 LF(\n)。

根据您的观点,方便或烦人的是,Java 有时会将“换行符”( \n) 转换为目标平台的正确形式。

于 2012-06-12T20:32:29.300 回答
2

\r 是回车,\n 是换行。

这种格式是特定于操作系统的。对于 windows/DOS,需要 \r\n。对于 unix \n 就足够了,对于 mac 使用 \r。(直到 Mac OS 9)。从 Mac OS 10+ 开始,使用 \n。

希望这可以帮助。

于 2012-06-12T20:33:18.910 回答
1

行分隔符是平台相关的(例如,"\n"在 UNIX 上,"\r\n"对于 Windows)。

FileWriter如果不是直接使用 a 而是将其包装到BufferedWriter具有newLine()方法的 a 中,或者在PrintWriter其中提供一种println方法来为您在幕后处理这些问题,那么您可以省去一些麻烦。

于 2012-06-12T20:34:53.137 回答
1

问:什么是“\r\n”?它是记事本专用的吗?

答:不,“\r\n”(“回车换行”)是 DOS/Windows 特定的。

大多数编译器只是将“\n”(“换行符”)别名为当前平台的适当序列。DOS/Windows 编译器将生成两个字符“\r\n”;Linux 编译器将为同一程序生成单个字符“\n”。

Java(为了跨平台兼容性)允许您明确说明您想要什么。

于 2012-06-12T20:34:56.797 回答
1

"\r\n" 是两个字符: "回车" 和 "换行" 。在 Windows 中,每个新行都是“\r\n”,而在 UNIX 系统中,新行只是“\n”。

于 2012-06-12T20:31:49.693 回答
1

换行序列取决于平台。在 Windows 上是\r\n. 在大多数 Unix 系统上,它是\n. 在旧版本的 Mac\r上使用。\r是回车 (CR) 字符并且\n是换行 (LF) 字符。

进一步阅读

于 2012-06-12T20:32:24.670 回答