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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 华谦 中级黑马   /  2014-9-27 22:55  /  807 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符流装饰类,用户在每行代码前加行号
  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. }
复制代码



4 个回复

倒序浏览
为什么要创建字符缓冲区{:3_47:}
回复 使用道具 举报
StringBuffer线程安全{:3_47:}
回复 使用道具 举报
mei kandssssss
回复 使用道具 举报
华谦 来自手机 中级黑马 2014-9-28 10:20:22
报纸
354620815 发表于 2014-9-27 23:28
为什么要创建字符缓冲区

把读取的每个字符存入缓冲区,读完一行再把一整行返回
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马