黑马程序员技术交流社区
标题:
视频没看明白,关于mybufferedread
[打印本页]
作者:
官仁杰
时间:
2012-10-10 16:28
标题:
视频没看明白,关于mybufferedread
本帖最后由 官仁杰 于 2012-10-11 22:06 编辑
public String myReadLine()throws IOException
{
//定义一个临时容器。原BufferReader封装的是字符数组。
//为了演示方便。定义一个StringBuilder容器。因为最终还是要将数据变成字符串。
StringBuilder sb = new StringBuilder();
int ch = 0;
while((ch=r.read())!=-1)
{
if(ch=='\r') //为什么\r,\n都要判断,为什么\r这里是continue
continue;
if(ch=='\n')
return sb.toString();
else
sb.append((char)ch);
}
if(sb.length()!=0)
return sb.toString();
return null;
}
复制代码
作者:
张忠豹
时间:
2012-10-10 16:37
在windows中\r\n表示换行
在linux中\n 就可以表示换行
但是,在继承工具里面直接用\n也是可以换行的,比如Eclipse中\n就可以表示换行……
作者:
李建强
时间:
2012-10-10 16:51
本帖最后由 李建强 于 2012-10-10 16:59 编辑
这个问题我也以前纠结了,
大约10几分钟,
07. while((ch=r.read())!=-1)
08. {
09. if(ch=='\r') //这里是r的话,会跳出本次循环执行下次循环,也就是不见到\r就不往下执行了。
10. continue;
11. if(ch=='\n') //上面见到/r,才能到这里找\n,\r\n都存在了,代表一行结束了。
12. return sb.toString();
13. else
14. sb.append((char)ch);
15. }
复制代码
作者:
Jordon
时间:
2012-10-10 17:52
在windows系统中\n\r表示按了回车键
\n 就是换行,换到下一行了,但是不知道是不是行首,
\r 就是回到本行的行首,没有换到下一行,如果\r后面有字符的话,就会覆盖住\r前面的字符,后面有几个字符就会覆盖前面的几个字符。
作者:
葬天
时间:
2012-10-10 17:52
(代码自己有)
开发:想了想,这需要一周吧
老板:别这么急,给你两周能完成吗?
开发:花三小时把代码改了,剩下的时间。。。。你懂得
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2