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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东梁 中级黑马   /  2014-4-22 18:46  /  863 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package cn.it.IO.mybufferedReader;

  2. import java.io.IOException;
  3. import java.io.Reader;

  4. public class MyBufferedReader {
  5.        
  6.         private Reader r;
  7.        
  8.         private char[]buf=new char[1024];
  9.        
  10.         private int index=0;
  11.        
  12.         private int count=0;
  13.        
  14.         public MyBufferedReader(Reader r) {
  15.                 super();
  16.                 this.r = r;
  17.         }
  18.        
  19.         public int myReader() throws IOException{
  20.                
  21.                 if(count==0){
  22.                         count =r.read(buf);
  23.                         index=0;
  24.                        
  25.                 }
  26.                 if(count<0){
  27.                         return -1;
  28.                 }
  29.                 char ch=buf[index];
  30.                 index++;
  31.                 count--;
  32.                 return ch;
  33.         }
  34.        
  35.         public String myReaderLine() throws IOException{
  36.                
  37.                 StringBuilder sb=new StringBuilder();
  38.                
  39.                 int ch=0;
  40.                
  41.                 while ((ch=myReader())!=-1) {
  42.                        
  43.                         if(ch=='\r'){
  44.                                 continue;
  45.                         }
  46.                         if(ch=='\n'){
  47.                                 return sb.toString();
  48.                         }
  49.                         sb.append((char)ch);
  50.                 }
  51.                
  52.                 if(sb.toString()!=null){//这个地方判断sb里面有无内容怎么不行?
  53.                         return sb.toString();
  54.                 }
  55.                 return null;
  56.         }
  57.        
  58.         public void myClose() throws IOException{
  59.                
  60.                 r.close();
  61.         }

  62. }
复制代码
请看最后注释的地方

2 个回复

倒序浏览
sb.toString()!=null。。。。。。
判断是否为null判断的是一个引用有没有指向对象,而不是一个确定的对象里有没有东西
对于StringBuilder来讲,如果它本身不是null,那调用toString方法后不可能返回null;如果它本身就是null,那个它根本没法调用toString方法,会抛出空指针异常。
所以这句话完全没有意义……
回复 使用道具 举报
你判断 sb 的length 不就行了吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马