Auf Thema antworten

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.

[code=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[/code]


2. Ich wollte diese Werte in dem ArrayList anschließend sortieren.

[code=Java]Collections.sort(highscore);[/code]


3. Und das ganze wieder in die Datei Highscore.txt geordnet reinschreiben.

[code=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[/code]


Und nu so sieht meine Main Methode aus:

[code=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*********[/code]


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



Oben