Highscore erstellen in TXT-Datei (Java, Netbeans IDE)

Ja, die oberste IF-Abfrage prüft,ob die Textdatei vorhanden ist, das ist richtig. Sie prüft aber nicht die Korrektheit der Daten! Deine zweite IF-Abfrage prüft nach i...

Dass dein Array deine Klasse enthält ist auch klar, aber der Fehler der Exception tritt doch im "eintrag"-Array auf? Da kommt das "highscore"-Array nocht nicht zum tragen (korrigiere mich, wenn der Fehler beim "highscrore"-Array auftritt, bei welchem Array die Exception geworfen wird, hast du ja noch nicht konkret gesagt).
 
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:punktzahl 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?
 
Zuletzt bearbeitet:
Es dauert wohl doch noch etwas läger, aber ich komm voran!
Wow, ich lern echt noch einiges dazu! Schade, dass ich so unter Zeitdruck bin... Ich hab gestern erst gemerkt, dass ich heute Vorprüfung in Videoschnitt habe^^

Also Vertag ich den Rest lieben auf morgen. Dann bekommt ihr alle Antworten. Danke für eure Geduld mit einem Java Frischling wie mir!
 
Ich hab noch ne kleine Frage:

Ich versuche mit dem BufferedReader zeilenweise einzulesen und bei ":" zu splitten.
Allerdings ist der Output für die Zeile folgender: "[Ljava.lang.String;@8a8ce2". Dabei war der eingelesene String ganz sicher "Julian: 100".

In den Anhang packe ich nochmal mein Projekt (aber bitte nicht wundern über die unzähligen Kommentare, in denen meine Versche stecken)...

Inzwischen funktioniert das Datei schreiben, aber nicht das einlesen (geschweige denn das vergleichen der Highscoreinträge und das ausgeben). Ich hab grad ziemlich viel um die Ohren und sogar schon mit dem Gedanken gespielt, den Highscore einfach für die Studienarbeit wegzulassen. Ich möchte es zwar immernoch gern alles wissen, aber bis nächsten Montag wird mir das zu viel. Ich sitze seit heut morgen um sieben an der Kiste und alles was ich hingebracht habe sind zwei drei Zeilen Code und wundgegooglete Finger. Vielleicht sollte ich vorher noch ein paar Tutorials machen...
 

Anhänge

  • Tohuwabohu.zip
    4,2 MB · Aufrufe: 29
Wenn du ein Array ausgeben willst musst du das mit Arrays.toString(deinArray) machen.
 
Allerdings ist der Output für die Zeile folgender: "[Ljava.lang.String;@8a8ce2". Dabei war der eingelesene String ganz sicher "Julian: 100".

Wie gibst du es denn aus?
Deine Fehlermeldung lässt vermuten, dass du es so ausgibst:
Code:
System.out.println(eintraegeZeilen.toString());
Die toString()-Methode kommt von Object nicht von String[].
In dem Fall wähle die in Post #15 genannte Variante, oder lass dir die Werte von dem Array einzeln in einer Schleifen ausgeben.

lg

PS.: Bei mir ist der Download deiner zip-Datei immer fehlerhaft, ka warum, war auch schon beim Post #1 so!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück