在讲IO这一章的时候,缓冲流的readLine()方法或者其他一些类似的方法,
都有会通过"\r\n"这样的字符判断行结束。
刚才,我通过上机发现,eclipse和dos窗口下,对'\r'和'\n'的处理是不一样的。
程序如下:
- public class TestRN{
- public static void main(String[] args){
- System.out.print("hello\r World1");
- System.out.print("hello java!\r World2");
- System.out.println("");
- System.out.println("");
- System.out.print("hello\nWorld1");
- System.out.print("hello java!\n World2");
- System.out.println("");
- System.out.println("");
- System.out.print("hello\r\nWorld1");
- System.out.print("hello java!\r\nWorld2");
- }
- }
复制代码
eclipse的输出是:
- hello
- World1hello java!
- World2
- hello
- World1hello java!
- World2
- hello
- World1hello java!
- World2
复制代码
dos小黑窗的输出是:
- World2hello java
- hello
- World1hello java!
- World2
- hello
- World1hello java!
- World2
复制代码
可以看到,eclipse把'\r','\n',"\r\n",都同样作换行处理。
而命令行窗口下,则是很标准的,
'\r'就是回车,光标回到行首,
'\n'就是换行,"\r\n"才是新的一行。
在自己实现BufferedReader的时候,差点就被eclipse误导了,可恶。 |