\ r \ n在FileWriter中为下一行

时间:2012-06-12 20:30:04

标签: java file-handling

我正在写入一个文本文件,我正在使用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"?记事本是否具体?

6 个答案:

答案 0 :(得分:2)

a "newline"的概念在不同系统上的处理方式不同。

To(over)简化:Windows使用CRLF(\r\n),UNIX和大多数其他流行的现代系统只使用LF(\n)。

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

答案 1 :(得分:2)

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

此格式是特定于操作系统的。对于windows / DOS \ r \ n是必需的。 对于unix \ n就足够了 并且使用mac \ r \ n。 (直到Mac OS 9)。自Mac OS 10+起,使用\ n。

希望这会有所帮助。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

Further reading

答案 4 :(得分:1)

行分隔符取决于平台(例如,UNIX上为"\n",Windows为"\r\n"

如果您不是直接使用FileWriter而是将其包裹在BufferedWriter方法中,或者在newLine()内提供PrintWriter方法,为您的幕后工作处理这些问题。

答案 5 :(得分:1)

  

问:什么是“\ r \ n”?记事本是否具体?

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

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

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