黑马程序员技术交流社区

标题: MyBufferedReader的程序问题,求帮忙,谢了 [打印本页]

作者: 陈国斌    时间: 2013-4-30 16:38
标题: MyBufferedReader的程序问题,求帮忙,谢了
以下程序运行结果怎么会是null啊?asdf.txt文件里边明明有内容啊
  1. import java.io.*;
  2. class MyBufferedReader
  3. {
  4.         private FileReader r;
  5.         MyBufferedReader(FileReader r)
  6.         {
  7.                 this.r = r;
  8.         }
  9.         public String myReadLine()throws IOException
  10.         {
  11.                 StringBuilder sb = new StringBuilder();
  12.                 int ch = 0;
  13.                 while((ch = r.read())!=-1)
  14.                 {
  15.                         if(ch=='\r')
  16.                                 continue;
  17.                         if(ch=='\n')
  18.                                 return sb.toString();
  19.                         else
  20.                                 sb.append((char)ch);
  21.                 }
  22.                 if(sb.length()!=0)
  23.                         return sb.toString();
  24.                 return null;
  25.         }
  26.         public void myClose()throws IOException
  27.         {
  28.                 r.close();
  29.         }
  30. }
  31. class MyBufferedReaderDemo
  32. {
  33.         public static void main(String[] args)throws IOException
  34.         {
  35.                 FileReader fr = new FileReader("asdf.txt");
  36.                 MyBufferedReader myBuf = new MyBufferedReader(fr);
  37.                 String line = null;
  38.                 while((line=myBuf.myReadLine())!=null);
  39.                 {
  40.                         System.out.println(line);
  41.                 }
  42.                 myBuf.myClose();
  43.         }
  44. }
复制代码

作者: wudongzhe    时间: 2013-4-30 17:15
楼主 你坑死人不偿命 我说怎么找不到错误呢  while((line=myBuf.myReadLine())!=null);  你这里已经分号结束了 怎么读啊
作者: 李慧声    时间: 2013-4-30 17:46
大哥 为什么复制下来你的代码有这么一个分号呢 、

while((line=myBuf.myReadLine())!=null) ; <---分号就显然是ok的 直接执行打印了 所以的到的是null
可能不小心加了一个“;” 在页面上感觉没问题,但是一运行就是null 瞅了半天,你原来一不留神多加了一个“;”,
作者: 李慧声    时间: 2013-4-30 17:46
把那个分号去掉就OK了

作者: 陈国斌    时间: 2013-4-30 21:28
哦,非常感谢各位,看来又是死在细节上了,用毕老师的话说,别看问题小,要了命了
作者: 陈国斌    时间: 2013-4-30 21:30
尹桥印 发表于 2013-4-30 16:49
是不是路径没有写全啊,asdf.txt这个文件是存在哪个地方的呐

就在当前路劲,没错,已经解决了,多了分号,仍然感谢你
作者: 郭孟涛    时间: 2013-4-30 21:30
在细节上了
作者: 黄玉昆    时间: 2013-4-30 23:09
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢




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