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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

以下程序运行结果怎么会是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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

9 个回复

倒序浏览
楼主 你坑死人不偿命 我说怎么找不到错误呢  while((line=myBuf.myReadLine())!=null);  你这里已经分号结束了 怎么读啊
回复 使用道具 举报
大哥 为什么复制下来你的代码有这么一个分号呢 、

while((line=myBuf.myReadLine())!=null) ; <---分号就显然是ok的 直接执行打印了 所以的到的是null
可能不小心加了一个“;” 在页面上感觉没问题,但是一运行就是null 瞅了半天,你原来一不留神多加了一个“;”,
回复 使用道具 举报
把那个分号去掉就OK了
回复 使用道具 举报
哦,非常感谢各位,看来又是死在细节上了,用毕老师的话说,别看问题小,要了命了
回复 使用道具 举报
尹桥印 发表于 2013-4-30 16:49
是不是路径没有写全啊,asdf.txt这个文件是存在哪个地方的呐

就在当前路劲,没错,已经解决了,多了分号,仍然感谢你
回复 使用道具 举报
在细节上了
回复 使用道具 举报
黄玉昆 黑马帝 2013-4-30 23:09:43
8#
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马