/r/n和/r、/n的区别

历史原因

        二战中,出现了电传打字机。这种打字机是机械式针头,每秒只能打印10个字符,当针头跑完第一行,从最右边下移到第2行的最左边时,需要耗时0.2秒,从而导致会丢失2个字符。
于是,研制人员想了一个办法:在每行后面加两个表示结束的字符,目的就是解决这个0.2秒的延迟问题

  • 一个字符是: 回车(\r):CR(Carriage Return的缩写,Ascii码是13),告诉打字机需要“把打印头定位在行首”;
  • 一个字符是: 换行(\n):LF(Line Feed的缩写,Ascii码是10),告诉打字机“把打印纸向下移动一行”;

业界现状

电子计算机问世后,这两个概念也同时被引入。因为存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就够了。从此,计算机界就出现了分歧。
微软Windows系统:每行结尾有“<回车><换行>”,即“\r\n”
Unix/Linux系统: 每行结尾只有“<换行>”,即"\n"
苹果Mac系统: 每行结尾只有“<回车>”,即"\r"

产生的后果

Unix/Linux/Mac系统生成的文本文件,当在Windows里打开时,会变成一行;

而Windows文件在Unix/Linux/Mac系统下打开时,会在每行的结尾会多出一个^M符号。

你可能感兴趣的:(杂篇,java,计算机)