Java语言高分悬赏,请问Java语言文件读写中\n和\r\n的区别是什么?
Java语言高分悬赏,请问Java语言文件读写中\n和\r\n的区别是什么?
从平时使用的结果来看,是没有区别的
\r 是回车,return
\n 是换行,newline
Unix系统里,每行结尾只有“<换行>”,即“\n”;
Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
这是因为系统原因而做的的区分。Windows系统下,使用\r\n
区分行;linux系统下,则一般使用\n
区分行。这两个都可以看作换行符。
这个跟操作系统有关,在Unix内核的系统中换行就是复\n,但是windows系统中换制行需要\r\n都用,这点只要你用io写一个文件内容只有\r或者\n然后在用windows记事本写个文件只知输入一个回车然后比较一下两个道文件大小就知道了
\n是跳到下一行,\r是跳到行首,\r\n的话是跳到下一行行首。但是往往下一行都是空的,所以\r\n与\n就没有差距了。
Java语言文件读写中\n和\r\n的区别与Java语言本身无关,而是与控制台/终端/等等有关。是控制台终端将输出转换为显示。
在Windows命令窗口中,标准的“行结束”编码是\r\n。Windows将其视为一个单独的字。
这种情况的历史原因是电传打印机的回车(将打印头移动到左边)和换行(将纸张向前移动一行)。
总结:
1. 在Unix和所有类Unix系统中,\n是表示行尾,\r没有什么特殊的含义。
2. 在C语言中,\n是行尾的标准转义字符
3. 在旧的Mac系统(os X之前)中,\r是表示行尾。
4. 在Windows(和许多老的OSs)中,行尾是用2个字符 \r\n,来表示的。
5. \r\n是Internet上文本格式的标准行尾终止符。