public static void main(String args[]) throws Exception
{
 File f=new File("c:\\1.txt");   //文本文件内容是100
 FileReader fr=new FileReader(f);
   
 char[] ch=new char[3];
          fr.read(ch);
          String st[]=null;
       
          for (int i=0;i<ch.length;i++)
          {       
            st[i]=String.valueOf( ch[i] );
          }         
} 提示出错信息为 :
ption in thread "main" java.lang.NullPointerException
at file.main(file.java:18)        //st[i]=String.valueOf( ch[i] );  这一行请问是为什么呢,我感觉没有错误啊,我就是想把 txt文本件的内容读出来,然后由char型转化成string型··谢谢

解决方案 »

  1.   

    int count = fr.read(ch);
    sysout(count)
     你看下 count是多少?
    我估计是 -1
    即,你没有读成功
      

  2.   


    //String st[] = null; 
    改为 String st[] = new String[ch.length];
      

  3.   

    谢谢楼上兄弟的回复 哦,刚才又试了一下 
    for (int i=0;i<ch.length;i++)
    {   
    st[i]=String.valueOf( ch[i] );
    }   

    把循环改成这样 就不报错了,可以执行了,区别在什么地方呢 ??
      

  4.   

    for (int i=0;i<ch.length;i++)
    {   
    String ss=String.valueOf( ch[i] );
    }   
    把循环改成这样 就好了该死的论坛 为什么不让编辑我自己的帖子??
      

  5.   

    因为 数组的长度是固定的 你设置null 它的长度不可获取
      

  6.   

     st[i]= String.valueOf(ch[i]) ; 的执行结果是 ::
    [Ljava.lang.String;@a90653[Ljava.lang.String;@a90653[Ljava.lang.String;@a90653奇怪·
      

  7.   

    String st[]=null;
    st[i]=String.valueOf( ch[i] ); --->null[i]=String.valueOf( ch[i] );
      

  8.   

    谢谢2楼  改成   String st[]=new String[ch.length];
    然后执行 st[i]= String.valueOf(ch[i]) ;
         
     System.out.print( st[i] );输出正确···