Einzelnen Beitrag anzeigen
Alt 16.12.2009, 23:19   #2 (permalink)
Android-Hilfe.de Mitglied
 
Benutzerbild von Melbar

Modell: LG P990

Registriert seit: 16.05.2009
Beiträge: 89
Abgegebene Danke: 2
Erhielt 25 Danke für 19 Beiträge
Standard AW: Nutzung des FileInput/OutputStreams

Hallo,

ich hab mal deinen Code ein bisschen angepasst. Dein Hauptproblem lag an PrintStream welches deinen int Wert in Klartext abspeichert, DataInputStream/DataOutputStream arbeiten da anders. Deshalb bekommst du auch die EOF Exception, diese wird geworfen weil das Ende erreicht wird bevor vier Bytes gelesen werden können.

Code:
try {
            FileOutputStream stream = new FileOutputStream("/sdcard/score");
            DataOutputStream ps = new DataOutputStream(stream);
            ps.writeInt(highscore);
            ps.close();
            stream.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {

            FileInputStream instream = new FileInputStream("/sdcard/score");
            DataInputStream in = new DataInputStream(instream);
            highscore += in.readInt();
            in.close();
            instream.close();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
Wie du am Code siehst hab ich die Datei mal auf dei SD-Karte gelegt. Wenn du es so verwenden möchtest darfst du die Permission nicht vergessen.

Code:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
Ohne angabe eines Pfades wird die Datei unter den Applikationsdaten gespeichert, der Ort ist /data/data/packagename/files. Das kannst du dir natürlich auch anschauen einfach in Eclipse die Ansicht DDMS öffnen dort gibt es einen File Explorer mit dem du dich auf dem Emulator bzw. der SD-Karte umschauen kannst.

Du kannst deine Highscores auch in einer anderen Weise einfacher Speichern, Stichwort Serialisieren von Objekten. Auf der Seite is es schön erklärt und ein Beispiel ist auch dabei.

Viel Spaß,
Stefan
Melbar ist offline   Mit Zitat antworten
Folgender Benutzer bedankt sich bei Melbar für diesen Beitrag:
Keija (17.12.2009)