黑马程序员技术交流社区

标题: 关于"\r\n "的一些上机所得 [打印本页]

作者: linweiwen    时间: 2014-4-20 16:37
标题: 关于"\r\n "的一些上机所得
在讲IO这一章的时候,缓冲流的readLine()方法或者其他一些类似的方法,
都有会通过"\r\n"这样的字符判断行结束。

刚才,我通过上机发现,eclipse和dos窗口下,对'\r'和'\n'的处理是不一样的
程序如下:
  1. public class TestRN{
  2. public static void main(String[] args){


  3. System.out.print("hello\r World1");
  4. System.out.print("hello java!\r World2");

  5. System.out.println("");
  6. System.out.println("");

  7. System.out.print("hello\nWorld1");
  8. System.out.print("hello java!\n World2");

  9. System.out.println("");
  10. System.out.println("");


  11. System.out.print("hello\r\nWorld1");
  12. System.out.print("hello java!\r\nWorld2");
  13. }


  14. }
复制代码



eclipse的输出是:
  1. hello
  2. World1hello java!
  3. World2

  4. hello
  5. World1hello java!
  6. World2

  7. hello
  8. World1hello java!
  9. World2
复制代码



dos小黑窗的输出是:
  1. World2hello java

  2. hello
  3. World1hello java!
  4. World2

  5. hello
  6. World1hello java!
  7. World2
复制代码



可以看到,eclipse把'\r','\n',"\r\n",都同样作换行处理。
而命令行窗口下,则是很标准的,
'\r'就是回车,光标回到行首,
'\n'就是换行,"\r\n"才是新的一行。


在自己实现BufferedReader的时候,差点就被eclipse误导了,可恶。
作者: 齐海宏    时间: 2014-4-20 21:52
本来以为\n.\r.\r\n已经学会了,但是看到你这个,觉得的确值得再研究一次。谢谢
作者: hhmm665544    时间: 2014-4-21 00:01
\r\n是记事本中的换行标记




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2