先给出\r、\n的ASCII值


windows中\r\n表示换行:

新建一个txt文件,输入A换行B,然后查看txt的十六进制,参照上图0D 0A即回车换行(\r\n)结果如下:

linux中\n表示换行:

同样在linux新建一个txt文件,输入A换行B,然后查看txt的十六进制,只有0A 即换行(\n)结果如下:
下面是用记事板打开,可以看到没有换行

疑问1:为什么有些文件只有\n为什么也能看到有换行效果 因为有些编辑工具做过特殊处理,遇到只有\n的情况也视为换行 可以看到把上面在linux创建的文件在记事本打开后,奇迹发生了,没有换行。但是换个编辑器查看,奇迹又发生了,又可以看到换行了。 有时候把linux下的log日志拿到windows下用记事本打开没有换行,用其它工具打开看到有换行就是这个原因

JAVA中,对于换行可以参考API,如下图


实际上,在java中经常用\n就表示换行了,为什么不用\r\n呢,因为用\n就可以达到换行效果还节省字节。但是用\r\n 也没错的。

但是有些人说只用\r也能达到换行效果就是误人子弟了,请测试

System.out.println("diu le you mu you\r!!!\r");
System.out.println("rnrn\r\nrnrn");
System.out.println("nn\nnn");

在Eclipse中确实看到换行效果了,请注意这是eclipse做的优化罢了,就想上面说的编辑工具一样

这是直接在cmd命令下执行结果


这是在IDEA执行的结果,错的更多了


更多推荐

从java、windows、linux中分析\r和\n