2017-03-14 3 views
0

Wenn ich mein Java-Code ausführen:So lösen Null Pointer Ausnahme i mein Code?

public class LalaLuLu { 
public static void main(String[] args) { 

    try{ 
     String path = "D:/Gem/FINAL/Datatest.csv"; 
     File file = new File(path); 
     InputStream is; 
     System.out.println(file.exists()); 

     FileReader fr = new FileReader(file); 
     BufferedReader br = new BufferedReader(fr); 

     PrintWriter os = new PrintWriter (new FileOutputStream("D:/Gem/FINAL/out_datatest1.txt")); 
     String output = ""; 
     int count = 0; 
     do{ 
      output = br.readLine(); 
      String[] a = output.split(";"); 
      System.out.println("total kolom: " + a.length); 
      os.println(output); 
      System.out.println(count++); 
     } while (!output.equals("")); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} } 

Wenn ich laufe, die Fehler auf dieser Linie:

output = br.readLine(); 
String[] a = output.split(";"); 

Und Fehler, die ich bekommen habe ist:

java.lang.NullPointerException 
    at DAO.readdata.readdataCSV(readdata.java:47) 

Können Sie sagen, ich, wie man diesen Fehler löst? Vielen Dank

+0

folgende sein Was gibt es in Zeile 47, haben Sie überprüfen Wert dieser Variablen in Debugger? Wenn ja, was ist das für ein Wert? – Vipin

Antwort

0

Überprüfen Sie die Dokumentation, wie readLine() funktioniert: https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html#readLine(). Nicht einschließlich linien Endzeichen

Ein String, den Inhalt der Zeile enthalten, oder Null, wenn das Ende des Strom wurde

erreicht

Es ist das Ende der Datei zu lesen und zurückgeben null.

Die einfachste fix wäre die

do{ 
    output = br.readLine(); 
    if (output == null) { 
     break; 
    } 
    String[] a = output.split(";"); 
    System.out.println("total kolom: " + a.length); 
    os.println(output); 
    System.out.println(count++); 
} while (!output.equals("")); 
+0

Es hilft mir. Danke für Ihre Lösung. – rurururu

Verwandte Themen