A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马刘杰 中级黑马   /  2013-2-26 19:48  /  1541 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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就是回车+换行,对于这个问题我不是很明白,求大神解释下,谢谢了



3 个回复

倒序浏览
本帖最后由 李挺 于 2013-2-26 20:31 编辑

假如\r是return的话,你f.write("hello\rJava");
的结果应该是javahello才对
可是是这样的么?
很明显windows只识别组合是\r\n的换行
这就在写BufferedWriter的时候一样
先判断是不是\r,如果是,再判断下个字符是不是\n
如果都符合就换行,如果是\n\r出来的不是乱码么?
回复 使用道具 举报
\r是CARRIAGE_RETURN,其实是将输出位置放回到一行的开头,
\n是LINE_FEED,是另起一行【你说的回车加换行】
回复 使用道具 举报
\n是到下一行行首,\r是到本行行首。
\n\r和\r\n还有\n效果是一样的。
回车是过去打字机的说法,打完一行要把“车”拉回行首。
Hello\rJava的输出是Javao,输出Hello之后回到行首,Java覆盖了Hell,剩下最后一个o。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马