黑马程序员技术交流社区

标题: 毕向东老师第19天第10节的时候MyLineNumberReader 可能有点问题 [打印本页]

作者: liquid1993    时间: 2015-5-9 23:27
标题: 毕向东老师第19天第10节的时候MyLineNumberReader 可能有点问题
可能时毕老师遗漏了 。我测试了一下 当文本文件什么都不装的时候,按照老师的程序输出的行数lineNumber是1,可是按照java本身封装的程序中的getLineNumber()运算的话输出是0,所以我在比老师的程序上面加了一条语句
  1. public String myReadLine()throws IOException
  2.         {
  3.                 if(r.read()==-1)
  4.                         return null;
  5.                 else
  6.                 {
  7.                         lineNumber++;
  8.                         StringBuilder sb = new StringBuilder();

  9.                         int ch = 0;

  10.                         while((ch=r.read())!=-1)
  11.                         {
  12.                                 if(ch=='\r')
  13.                                         continue;
  14.                                 if(ch=='\n')
  15.                                 {
  16.                                         //System.out.println(sb.toString());
  17.                                         return sb.toString();
  18.                                 }
  19.                                 else
  20.                                         sb.append((char)ch);
  21.                         }
  22.                         if(sb.length()!=0)
  23.                                 return sb.toString();
  24.                         return null;
  25.                 }
  26.                
  27.         }
  28.         public void setLineNumber(int lineNumber)
  29.         {
  30.                 this.lineNumber = lineNumber;
  31.         }
  32.         public int getLineNumber()
  33.         {
  34.                 return lineNumber;
  35.         }

  36.         public void myClose()throws IOException
  37.         {
  38.                 r.close();
  39.         }
  40. }
复制代码
加了一句if(r.read()==-1)用来判断文本文件是否为空,  不知道我说的对不对 请大家指正。





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