Du sagst das:
Code:
AddHighscore[] highscore = new AddHighscore[10];
Von daher dürfte highscore hier:
Code:
highscore[i] = new AddHighscore(eintrag[0]/*Name*/, Double.parseDouble(eintrag[1]/*Score*/));
nicht das Problem sein. Ich würde aber zur Sicherheit nochmal irgendwo sowas schreiben:
Code:
System.out.println("Größe des HighscoreArrays: "+highscore.length);
Wenn da das richtige ausgegeben wird (Größe des HighscoreArrays: 10), kann es eigentlich nur am eintrag[] liegen, vorausgesetzt er wirft tatsächlich die Exception in der Zeile.
Weiterhin würde ich zu Testzwecken selbst eine highscore.txt schreiben und schauen, ob er die liest!
Vielleicht mit so einem Inhalt:
MaxMustermann:500
MartinMustermann:700
MartaMustermann:1000
Wo auch Fehler auftreten können ist das Schreiben eines Zeilenumbruchs in eine Datei mit \n.
Sicherer wäre meiner Meinung nach, wenn du statt dem \n
Code:
System.getProperty("line.separator")
benutzt. Siehe
http://www.tutorials.de/forum/java/152041-java-zeilenumbruch-datei.html
Code:
highScoreFileWriter.write(highscore[i].toString());
Hier wird nie der String in der Form Name
unktzahl herauskommen oder hast du die toString()-Methode irgendwo überschrieben?
Wenn du das so schriebst kommt glaub ich sowas in die Richtung heraus: AddHighscore@130c19b
Und ein derartiger String würde beim splitten über ':' natürlich nur sich selbst zurückgeben!
Versuch es lieber mit:
Code:
highScoreFileWriter.write(highscore[i].getHighscoreName()+": "+highscore[i].getHighscoreScore());
oder überschreibe die Methode in AddHighscore...
Code:
public String toString(){
return new String(myname+": "+myscore);
}
Letzeres hat auch die Person in dem Thread (
Post #5) gemacht, den du dir als Vorbild genommen hast.
Hat es bei dir einen besonderen Zweck, dass die Methoden und Variablen in AddHighscore static sind?
Ach ja: Wenn ich die Highscore-Klasse ausführe, wird keine Datei mit dem Namen highscore.txt erstellt.
Hundert Prozentig sicher, dass du im richtigen Verzeichnis schaust?