黑马程序员技术交流社区

标题: 回车与换行的问题 [打印本页]

作者: 黑马刘杰    时间: 2013-2-26 19:48
标题: 回车与换行的问题
  1. public static void fun(){
  2.                 FileWriter f;
  3.                 try {
  4.                         f = new FileWriter("H:/text.txt",true);

  5.                         //网上说windows里面每行结尾处是<换行><回车>,但事实不是
  6.                         f.write("Hello\n\rHeima");

  7.                         //而倒过来却是正确的
  8.                         f.write("hello\r\nJava");

  9.                         f.flush();
  10.                         f.close();
  11.                 } catch (IOException e) {
  12.                         e.printStackTrace();
  13.                 }
  14.         }
复制代码
我感觉\r和\n的应该这么解释
\r: return :从行首跑到行尾
\n: next :跑到下一行

但是网上也有人说\n就是回车+换行,对于这个问题我不是很明白,求大神解释下,谢谢了




作者: 李挺    时间: 2013-2-26 20:25
本帖最后由 李挺 于 2013-2-26 20:31 编辑

假如\r是return的话,你f.write("hello\rJava");
的结果应该是javahello才对
可是是这样的么?
很明显windows只识别组合是\r\n的换行
这就在写BufferedWriter的时候一样
先判断是不是\r,如果是,再判断下个字符是不是\n
如果都符合就换行,如果是\n\r出来的不是乱码么?
作者: 贾文泽    时间: 2013-2-26 20:58
\r是CARRIAGE_RETURN,其实是将输出位置放回到一行的开头,
\n是LINE_FEED,是另起一行【你说的回车加换行】
作者: 王昕    时间: 2013-2-26 21:09
\n是到下一行行首,\r是到本行行首。
\n\r和\r\n还有\n效果是一样的。
回车是过去打字机的说法,打完一行要把“车”拉回行首。
Hello\rJava的输出是Javao,输出Hello之后回到行首,Java覆盖了Hell,剩下最后一个o。




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