Hallo Leute,
der ein oder andere von euch kennt ja sicherlich die Quizkarten Aufgabe vom Buch Java von Kopf bis Fuß. Dies hab ich versucht zu programmieren (ab und zu mal abgeschaut)
Nun bin ich auf ein Problem gestoßen beim Auslesen von längeren Fragen/Antworten. Ich hab mal eine Anlage angehängt, so sieht jede Frage aus.
Außerdem habe ich die .jar Datei angehängt, bei der das Problem auftritt, sieht bisschen anders aus aber nicht viel. Um eine Datei zu laden muss man den Modus auf "Lernen" ändern.
beim einlesen/laden der angehängten Datei bekomme ich 8 mal die Meldung "Bei Items läuft was falsch".
Die meisten werden sich das wahrscheinlich ansehen und sich gleich auskennen, aber trotzdem nochmal eine kleine Erklärung.
Eine Zeile wird eingelesen und bei "/" gesplittet und dem Array items zugewiesen. Somit hat das Array immer den Index 0 und 1. Dies wird dann dem Konstruktor der EineKarte Klasse übergeben und eine neue Karte erzeugt.
Wobei der Index 0 der Frage und der Index 1 der Antwort entspricht.
das EineKarte Objekt wird dann einer ArrayList hinzugefügt und irgendwann ausgegeben.
Zum testen hab ich mir mal gedacht die Länge des Arrays muss ja immer 2 sein, ansonsten läuft ja was falsch. (wenn es anders ist verbessert mich)
Nun meine Frage warum bekomme ich die Konsolenausgabe bei der else-Anweisung 8 mal?
In der Textdatei sind 27 Fragen, allerdings werden mir, wenn ich die Fragen beim Ausführen durch klicke nur 25 angezeigt. (Wer Lust hat kannst mal testen )
Zum Test hab ich den Code mal auf "eine gute Zeile" gekürzt und dann erhalte ich die Konsolenausgabe nur noch 2 mal, aber das kann ja wohl nicht die Lösung sein.
Das ist natürlich nicht der ganze Quelltext, aber zumindest der Teil in dem ich den Fehler vermute. Ansonsten Bescheid sagen.
Ich hoffe jemand von euch kann mir weiterhelfen.
Vielen Dank.
der ein oder andere von euch kennt ja sicherlich die Quizkarten Aufgabe vom Buch Java von Kopf bis Fuß. Dies hab ich versucht zu programmieren (ab und zu mal abgeschaut)
Nun bin ich auf ein Problem gestoßen beim Auslesen von längeren Fragen/Antworten. Ich hab mal eine Anlage angehängt, so sieht jede Frage aus.
Außerdem habe ich die .jar Datei angehängt, bei der das Problem auftritt, sieht bisschen anders aus aber nicht viel. Um eine Datei zu laden muss man den Modus auf "Lernen" ändern.
Java:
public void dateiLaden(File datei){
String zeile = null;
try{
BufferedReader reader = new BufferedReader(new FileReader(datei)); // Datei die geladen werden soll, muss ausgewählt werden.
while((zeile = reader.readLine()) != null){
String[]items = zeile.split("/");
if(items.length==2){
EineKarte karte = new EineKarte(items[0], items[1]);
kartenListe.add(karte);
}else{
System.out.println("Bei items läuft was falsch");
}
}
reader.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
beim einlesen/laden der angehängten Datei bekomme ich 8 mal die Meldung "Bei Items läuft was falsch".
Die meisten werden sich das wahrscheinlich ansehen und sich gleich auskennen, aber trotzdem nochmal eine kleine Erklärung.
Eine Zeile wird eingelesen und bei "/" gesplittet und dem Array items zugewiesen. Somit hat das Array immer den Index 0 und 1. Dies wird dann dem Konstruktor der EineKarte Klasse übergeben und eine neue Karte erzeugt.
Wobei der Index 0 der Frage und der Index 1 der Antwort entspricht.
das EineKarte Objekt wird dann einer ArrayList hinzugefügt und irgendwann ausgegeben.
Zum testen hab ich mir mal gedacht die Länge des Arrays muss ja immer 2 sein, ansonsten läuft ja was falsch. (wenn es anders ist verbessert mich)
Nun meine Frage warum bekomme ich die Konsolenausgabe bei der else-Anweisung 8 mal?
In der Textdatei sind 27 Fragen, allerdings werden mir, wenn ich die Fragen beim Ausführen durch klicke nur 25 angezeigt. (Wer Lust hat kannst mal testen )
Zum Test hab ich den Code mal auf "eine gute Zeile" gekürzt und dann erhalte ich die Konsolenausgabe nur noch 2 mal, aber das kann ja wohl nicht die Lösung sein.
Das ist natürlich nicht der ganze Quelltext, aber zumindest der Teil in dem ich den Fehler vermute. Ansonsten Bescheid sagen.
Ich hoffe jemand von euch kann mir weiterhelfen.
Vielen Dank.