2016-05-16 14 views
0
import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 

public class Example { 

    public static void main(String[] args) { 
     BufferedReader input = null; 
     BufferedWriter output = null; 
     try{ 
      int c; 
      input = new BufferedReader(new FileReader("readfile.txt")); 
      output = new BufferedWriter(new FileWriter("writefile.txt")); 
      while ((c=input.read())!= -1) { 
       output.write(c); 
      } 
     } catch (FileNotFoundException fnfe){ 
       System.err.println("The file was not found."); 
       fnfe.getMessage(); 
     } catch (IOException ioe) { 
      System.err.println("The file could not be read."); 
      ioe.getMessage(); 
     }finally { 
      try { 
       output.close(); 
      } catch (IOException e) { 
       System.err.println("The file was not opened."); 
       e.printStackTrace(); 
      } 
      try { 
       input.close(); 
      } catch (IOException e) { 
       System.err.println("The file couldn't be closed."); 
       e.printStackTrace(); 
      } 

     } 


    } 

} 

Der obige Code eine unerwartete Ausnahme auslöst - Nullpointer in einer der try-Block auf der folgenden Zeile: output.close() ;. Kann jemand den Grund dafür erklären? Jede Hilfe wäre willkommen. Danke im Voraus.unerwartete Ausnahme: java.lang.NullPointerException

Antwort

0

Die Linie

input = new BufferedReader(new FileReader("readfile.txt")); 

vor output werfen könnte initialisiert. Daher output == null beim Versuch, output.close(); auszuführen. Vielleicht hast du stattdessen so etwas gemeint:

if (output != null) 
    output.close(); 
Verwandte Themen