Hallo liebe Community,
Ich stehe verzweifelt vor einem Problem, das ich leider nicht eigenständig lösen kann. Ich habe schon viele Wege ausprobiert, aber leider lande ich immer am selben Ausgangspunkt.
Mein Problem ist folgendes:
1. Ich möchte eine Datei zeilenweise einlesen und in ArrayList ablegen.
2. Ich wollte diese Werte in dem ArrayList anschließend sortieren.
3. Und das ganze wieder in die Datei Highscore.txt geordnet reinschreiben.
Und nu so sieht meine Main Methode aus:
Nun, das Problem liegt daran, dass die Werte nicht sauber eingelesen werden, anstatt den ersten Eintrag erscheint "null" und beim schreiben in die Datei wird eine NullPointerException geschmissen.
Kann mir jemand von euch helfen?
Vielen Dank im Voraus
Liebe Grüße
ZxSpectrum
Ich stehe verzweifelt vor einem Problem, das ich leider nicht eigenständig lösen kann. Ich habe schon viele Wege ausprobiert, aber leider lande ich immer am selben Ausgangspunkt.
Mein Problem ist folgendes:
1. Ich möchte eine Datei zeilenweise einlesen und in ArrayList ablegen.
Java:
public static ArrayList<String> schreiben(String element){
file = new File("Highscore.txt");
try {
writer = new FileWriter(file ,true);//Hängt ans Ende der Datei, wenn vorhanden
writer.write(element); //Element aus der ArrayList wird in die Datei geschrieben
writer.write(System.getProperty("line.separator"));//Zeilenumbruch
writer.flush();
// Schliesst den Stream
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
return highscore;
}//schreiben
public static ArrayList<String> lesen(String element) throws IOException{
FileReader fr = new FileReader("Highscore.txt");
BufferedReader br = new BufferedReader(fr);
while (br.readLine()!=null){
element = br.readLine();//jede Zeile im tmp String abspeichern
// highscore.add(br.readLine());//War ein Versuch einer alternativen lösung
highscore.add(element);//Jede Zeile wird zu Arraylist "highscore" geäddet.
}//while
br.close();
return highscore;
}//public static void lesen
2. Ich wollte diese Werte in dem ArrayList anschließend sortieren.
Java:
Collections.sort(highscore);
3. Und das ganze wieder in die Datei Highscore.txt geordnet reinschreiben.
Java:
public static ArrayList<String> schreiben(String element){
file = new File("Highscore.txt");
try {
writer = new FileWriter(file ,false);//Hängt ans Ende der Datei, wenn vorhanden
writer.write(element); //Element aus der ArrayList wird in die Datei geschrieben
writer.write(System.getProperty("line.separator"));//Zeilenumbruch
writer.flush();
// Schliesst den Stream
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
return highscore;
}//schreiben
Und nu so sieht meine Main Methode aus:
Java:
//***********HIGHSCORE*********
ScoreWriter.lesen(element);//Hier sollten die Daten aus der Datei Highscore.txt eingelesen werden
element = Methods.spielModus(prompt, zufallsZahl, element) + " " + auswahl;//tmp Speicher für die Werte aus der zuletzt gespielten Runde
highscore.add(element);//Der aktuelle Wert vom Durchlauf des Programms sollte hinten an die Liste dran gehängt werden
Collections.sort(highscore);//Die ArrayList sortieren
System.out.println("inhalt der Liste");//Hier wird Kontrollweise der Inhalt der Liste ausgegeben
for (String count: highscore) {
System.out.println(count);
}
for (int i = 0; i < highscore.size(); i++) {
element = highscore.get(i);
ScoreWriter.schreiben(element);
}
//***********HIGHSCORE*********
Nun, das Problem liegt daran, dass die Werte nicht sauber eingelesen werden, anstatt den ersten Eintrag erscheint "null" und beim schreiben in die Datei wird eine NullPointerException geschmissen.
Kann mir jemand von euch helfen?
Vielen Dank im Voraus
Liebe Grüße
ZxSpectrum
Zuletzt bearbeitet von einem Moderator: