黑马程序员技术交流社区

标题: 纠结了好久,求大神解决 [打印本页]

作者: 华谦    时间: 2014-9-27 22:55
标题: 纠结了好久,求大神解决
字符流装饰类,用户在每行代码前加行号
  1. public class MyLineNumberReader
  2. {
  3.                 private Reader r;
  4.                 //private StringBuffer sb = new StringBuffer();
  5.                 private int number;
  6.                 MyLineNumberReader(Reader r)
  7.                 {
  8.                         this.r = r;
  9.                 }
  10.                 public String readerLine()throws Exception
  11.                 {
  12.                         number++;
  13.                         StringBuffer sb = new StringBuffer();
  14.                         //sb.append(number+":");        //为什么打开这里,创建字符缓冲区后,在每行前添加行号就不行了呢?注释掉就可以每行打印出来
  15.                         int ch = 0;
  16.                         while((ch=r.read())!=-1)
  17.                         {
  18.                                 if(ch=='\r')
  19.                                         continue;
  20.                                 if(ch=='\n')
  21.                                         return sb.toString();
  22.                                 else
  23.                                         sb.append((char)ch);
  24.                         }
  25.                         if(sb.length()!=0)
  26.                                 return sb.toString();
  27.                         return null;
  28.                 }
  29.        
  30. }
复制代码




作者: 354620815    时间: 2014-9-27 23:28
为什么要创建字符缓冲区{:3_47:}
作者: 354620815    时间: 2014-9-27 23:30
StringBuffer线程安全{:3_47:}
作者: 安少康    时间: 2014-9-27 23:36
mei kandssssss
作者: 华谦    时间: 2014-9-28 10:20
354620815 发表于 2014-9-27 23:28
为什么要创建字符缓冲区

把读取的每个字符存入缓冲区,读完一行再把一整行返回




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