刚开始学Java,今天写了一段代码,如下
import   java.io.*;  
  import java.util.*;
  public   class   Check
     {
  
    public static  String[]  Checkin(String infilename) throws   Exception
    {
    
     File infilename1 =new File(infilename);
     BufferedReader in = new BufferedReader(new FileReader(infilename1)); 
      String   line;
       String[]   rown=new   String[4000];
        int j=0;
      while((line=in.readLine())!=null)   
        {
         rown[j] = line;
          System.out.println(rown[j]);
          j++;
        }
  
       in.close();
       return rown;
          
      /* catch (IOException e)
             {
             
              }*/
        //return rown;
         //finally{   in.close();}
       }
    
    
       public  static void  Checkout(String outfilename,String[] content) throws   Exception
      {
      
         File outfilename1 =new File(outfilename);
         BufferedWriter out= new BufferedWriter(new  FileWriter(outfilename1));
         //String outline ;
         String[] mid1=content;
         for(int i = 0; i < mid1.length;i++)
         { 
          //outline=mid1[i];
            out.write(mid1[i]);
            System.out.println("----"+mid1[i]);
            out.newLine();
           
          }
          out.close();
          
       }
  
  
  
  
  
  
    public   static   void   main(String[]   args) throws   Exception
    {
        String infilename = "456.txt";
        String outfilename = "123.txt";
        String[] mid = Checkin(infilename);
        System.out.println(mid[2]);
        Checkout(outfilename,mid);
       
    
     }
  
  
  
  }
所有的System.out.println都能显示出来,但却写不进123.txt去,里面是空的,各位大侠帮忙看看怎么回事,小弟万分感激啊!!!

解决方案 »

  1.   

    Exception in thread "main" java.lang.NullPointerException
            at java.io.Writer.write(Unknown Source)
            at Check.Checkout(Check.java:43)
            at Check.main(Check.java:63)这是提示的异常,这是什么原因呢
      

  2.   

    public  static void  Checkout方法对应的43行是什么,仔细分析
      

  3.   

    空指针错误,
    因为你的数组长度是4000, 但是文件并没有4000行,所以当要试图打印
    不存在的行时会出错.
    用一个变量记录行长度或者用ArrayList取代数组.