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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 月光海 高级黑马   /  2014-4-13 21:59  /  722 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.io.*;
  2. class MyLineReader
  3. {
  4. public static void main(String[] args)  throws IOException
  5.         {
  6.                 FileReader fr=new FileReader("d:\\xiaonan.txt");
  7.                 MiLineNumReader mr=new MiLineNumReader(fr);
  8.                 String s=null;
  9.                 while ((s=mr.myGetLineNum())!=null)
  10.                 {
  11.                         System.out.println(s);
  12.                 }
  13.                 fr.close();
  14.         }
  15. }
  16. class MiLineNumReader extends Reader
  17. {
  18.         private FileReader r;
  19.         int num=0;
  20.        
  21.         MiLineNumReader(FileReader r)
  22.         {
  23.                 super(r);
  24.                 this.r=r;
  25.         }
  26.         BufferedReader br=new BufferedReader(r);//在这一句抛出了空指针异常
  27.         public String myGetLineNum() throws IOException
  28.         {
  29. if(br.readLine()!=null)
  30.                 {
  31.                         return (num++)+br.readLine();
  32.                 }
  33.                 return null;
  34.         }
  35.         public void close()throws IOException
  36.         {
  37.                 r.close();
  38.         }
  39.         public int read(char[] cbuf, int off, int len) throws IOException
  40.         {
  41.                 return read(cbuf, off, len);
  42.         }
  43. }
复制代码
我的问题是,MiLineNumReader mr=new MiLineNumReader(fr);这一句我往构造函数里传递了参数,为什么却没有赋值成功,导致我
BufferedReader br=new BufferedReader(r);这句的r为null,抛出了空指针异常,求解

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

2 个回复

倒序浏览
  MiLineNumReader(FileReader r)
        {
                super(r);
                this.r=r;
        }
这句的super原来没加,我调试了一下,发下大括号其实根本就没进去,是什么情况呢
回复 使用道具 举报
没人懂?没人看?没人理?都睡了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马