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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 官仁杰 中级黑马   /  2012-10-10 16:28  /  1246 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 官仁杰 于 2012-10-11 22:06 编辑
  1. public String myReadLine()throws IOException
  2.         {
  3.                 //定义一个临时容器。原BufferReader封装的是字符数组。
  4.                 //为了演示方便。定义一个StringBuilder容器。因为最终还是要将数据变成字符串。
  5.                 StringBuilder sb = new StringBuilder();
  6.                 int ch = 0;
  7.                 while((ch=r.read())!=-1)
  8.                 {
  9.                         if(ch=='\r')         //为什么\r,\n都要判断,为什么\r这里是continue
  10.                                 continue;
  11.                         if(ch=='\n')
  12.                                 return sb.toString();
  13.                         else
  14.                                 sb.append((char)ch);
  15.                 }

  16.                 if(sb.length()!=0)
  17.                         return sb.toString();
  18.                 return null;               
  19.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
尤圣回 + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
在windows中\r\n表示换行
在linux中\n 就可以表示换行
但是,在继承工具里面直接用\n也是可以换行的,比如Eclipse中\n就可以表示换行……

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 李建强 于 2012-10-10 16:59 编辑

这个问题我也以前纠结了,
大约10几分钟,
  1. 07.                while((ch=r.read())!=-1)

  2. 08.                {

  3. 09.                        if(ch=='\r')         //这里是r的话,会跳出本次循环执行下次循环,也就是不见到\r就不往下执行了。
  4. 10.                                continue;

  5. 11.                        if(ch=='\n') //上面见到/r,才能到这里找\n,\r\n都存在了,代表一行结束了。

  6. 12.                                return sb.toString();

  7. 13.                        else

  8. 14.                                sb.append((char)ch);

  9. 15.                }

复制代码

评分

参与人数 1技术分 +1 收起 理由
尤圣回 + 1 赞一个!

查看全部评分

回复 使用道具 举报
在windows系统中\n\r表示按了回车键
\n 就是换行,换到下一行了,但是不知道是不是行首,
\r 就是回到本行的行首,没有换到下一行,如果\r后面有字符的话,就会覆盖住\r前面的字符,后面有几个字符就会覆盖前面的几个字符。
回复 使用道具 举报
(代码自己有)
开发:想了想,这需要一周吧
老板:别这么急,给你两周能完成吗?
开发:花三小时把代码改了,剩下的时间。。。。你懂得
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马