Natürlich habe ich wieder ein Problem, sonst würde ich mich ja nicht melden. :bahnhof: Ich bekomme eine seltsama Fehlermeldung und komme nicht nach...
Dieser Code funtioniert:
Java:
privatevoidauslesenDatei(String pfad)throwsIOException{BufferedReader br =newBufferedReader(newFileReader(pfad));// String fürs Überprüfen ob nullString zeile ="";// Solange ungleich Fehlermeldung null ausführendo{// Zeile auslesen und in String speichern
zeile = br.readLine();JLabel jb =newJLabel(zeile);
gbc.gridy++;
jp1.add(jb, gbc);}while(zeile !=null);// Entspricht Inhalt gleich null, raus// Wenn false, zu machenif(zeile ==null){
br.close();}}
Aber sobald ich die if-Bedingung einfüge, um die "4" nicht anzuzeigen, erhalte ich eine Fehlermeldung.
Java:
privatevoidauslesenDatei(String pfad)throwsIOException{BufferedReader br =newBufferedReader(newFileReader(pfad));// String fürs Überprüfen ob nullString zeile ="";// Solange ungleich Fehlermeldung null ausführendo{// Zeile auslesen und in String speichern
zeile = br.readLine();if(!zeile.equals("4")){JLabel jb =newJLabel(zeile);
gbc.gridy++;
jp1.add(jb, gbc);}}while(zeile !=null);// Entspricht Inhalt gleich null, raus// Wenn false, zu machenif(zeile ==null){
br.close();}}
Fehlermeldung
Exception in thread "main" java.lang.NullPointerException
at Datenbank.auslesenDatei(Datenbank.java:135)
at Datenbank.<init>(Datenbank.java:74)
at Memoire.main(Memoire.java:24)
Ich übersehe wahrscheinlich wieder etwas... Sieht jemand von euch die Lösung?
Exception in thread "main" java.lang.NullPointerException
at Datenbank.auslesenDatei(Datenbank.java:135)
at Datenbank.<init>(Datenbank.java:74)
at Memoire.main(Memoire.java:24)
Ich gebe dir einmal den Tip, dir die Fehlermeldung genauer anzusehen.
Die markierten Stellen zeigen dir, wo der Fehler auftritt (Datei + Zeile).
In der angegebenen Zeile ist eine Variable null. Und zwar muss es eine Variable sein, bei der du eine Methode aufrufst oder eine Instanzvariable ansprichst.
Da dein Beitrag nicht die vollstaändige Klasse beinhaltet, fehlt uns der Bezug zur fehlerhaften Zeile. Die Zeilennummerierung deines Ausschnitts hat ja nichts mit den echten Zeilennummern zu tun.
Da du eine fußgesteuerte Schleife verwendest, läuft die Schleife noch einmal durch wenn zeile bereits null ist. Dadurch kommt es zur exception, Nimm lieber eine kopfgesteuerte Schleife. Z.B.:
Sobald ich zu Hause bin, werde ich deine Lösung testen. Ich danke dir viel Mals.
Java:
while((br.readLine())!=null)
Ich dachte bis anhin, dass Methoden in Klammern wie oben, nur einen Rückgabewert liefern (um es dann zu vergleichen) und nicht auch ausführen. Doch bin ich wohl falsch gelegen. :lol:
Damit eine Methode einen Rückgabe Wert hergibt muss diese natürlich auch ausgeführt werden. Wenn du eine Methode aufrust (egal wo) wird diese ausgeführt und liefert wenn angegeben einen Rückgabewert. (Ob du diesen verwendest oder nicht ist egal)