在Java中,换行符和回车符似乎都显示出相同的效果。
char文字\n
和\r
Java之间的实际区别是什么?
请注意,以上内容询问的是\n
字符,而不是newLine()
on的函数BufferedWriter
,因此其他问题无关紧要。
在Java中,换行符和回车符似乎都显示出相同的效果。
char文字\n
和\r
Java之间的实际区别是什么?
请注意,以上内容询问的是\n
字符,而不是newLine()
on的函数BufferedWriter
,因此其他问题无关紧要。
Answers:
\n
是换行(LF)字符,字符代码10。\r
是回车(CR)字符,字符代码13。它们的作用因系统而异。例如,在Windows上,文本文件中的行使用CR终止,后跟LF(例如CRLF)。在Unix系统及其派生类中,仅使用LF。(Mac OS X之前的Mac使用CR,但是Mac OS X是* nix派生产品,因此使用LF。)
在过去,LF实际上只是在打印机上换行(向下移动一行而不移动您在页面上的水平位置),CR类似地移回该行的开头而不向上移动纸张,因此某些系统(例如Windows)发送CR(返回左侧)和LF(并向上送纸)。
由于所有这些混乱,某些输出目标将接受多个换行符序列,因此您可以根据输出的内容从两个字符中看到相同的效果。
\n
适用于UNIX
\r
适用于Mac(在OS X之前)
\r\n
适用于Windows格式
你也可以 System.getProperty("line.separator")
它将为您提供适合您的操作系统的信息
System.lineSeparator()
区别不是特定于Java,而是特定于平台。从历史上看,类似UNIX的操作系统被\n
用作换行符,使用了一些其他不推荐使用的操作系统,并且使用了\r
Windows操作系统\r\n
。
在命令行上,\ r将光标移回当前行的开头。若要查看差异,必须从命令提示符处运行代码。Eclipse的控制台为这两个表达式显示类似的输出。有关转义序列的完整列表,请单击此处https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.6