Data Storage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Data Storage

    Hi,
    ich programmiere ein kleines Spiel für Android und habe Probleme dabei die Highscores zu speichern.
    Mit dieser Funktion lese ich die Highscores aus (hier gibts immer Fehler):

    Quellcode

    1. public void getHighscore(Highscore score) {
    2. score = null;
    3. FileInputStream fis = null;
    4. try {
    5. fis = openFileInput("high.score");
    6. } catch (FileNotFoundException e) {
    7. e.printStackTrace();
    8. }
    9. if (fis!=null) {
    10. ObjectInputStream ois = null;
    11. try {
    12. ois = new ObjectInputStream(fis);
    13. } catch (StreamCorruptedException e) {
    14. // TODO Auto-generated catch block
    15. e.printStackTrace();
    16. } catch (IOException e) {
    17. // TODO Auto-generated catch block
    18. e.printStackTrace();
    19. }
    20. try {
    21. score = (Highscore) ois.readObject();
    22. } catch (OptionalDataException e) {
    23. // TODO Auto-generated catch block
    24. e.printStackTrace();
    25. } catch (ClassNotFoundException e) {
    26. // TODO Auto-generated catch block
    27. e.printStackTrace();
    28. } catch (IOException e) {
    29. // TODO Auto-generated catch block
    30. e.printStackTrace();
    31. }
    32. } else {
    33. score = new Highscore();
    34. }
    35. }
    Alles anzeigen

    und damit schreibe ich die Highscores

    Quellcode

    1. public void writeHighscore(Highscore score) {
    2. FileOutputStream fos = null;
    3. try {
    4. fos = openFileOutput("high.score", Context.MODE_PRIVATE);
    5. } catch (FileNotFoundException e) {
    6. e.printStackTrace();
    7. }
    8. if (fos!=null) {
    9. ObjectOutputStream oos = null;
    10. try {
    11. oos = new ObjectOutputStream(fos);
    12. } catch (StreamCorruptedException e) {
    13. // TODO Auto-generated catch block
    14. e.printStackTrace();
    15. } catch (IOException e) {
    16. // TODO Auto-generated catch block
    17. e.printStackTrace();
    18. }
    19. try {
    20. oos.writeObject(score);
    21. } catch (OptionalDataException e) {
    22. // TODO Auto-generated catch block
    23. e.printStackTrace();
    24. } catch (IOException e) {
    25. // TODO Auto-generated catch block
    26. e.printStackTrace();
    27. }
    28. try {
    29. oos.close();
    30. } catch (IOException e) {
    31. // TODO Auto-generated catch block
    32. e.printStackTrace();
    33. }
    34. }
    35. }
    Alles anzeigen

    Das wird mein erstes Android und mein erstes Java Programm (davor habe ich mit C++ programmiert), deswegen bitte etwas Nachsicht bei dummen Fehlern ;)
    Beim Aufruf der getHighscore-Methode gibts Fehler, kann mir jemand helfen?
    Danke im Voraus :)
  • Jo, man merkt dass du aus dem C++ bereich kommst. Kann auf die Schnelle keine (dummen) Fehler in deinem Code erkennen, da ich kein C(++) kann. :D
    Bin allerdings sicher, dass es unter Java eine Lösung gibt, die weniger fummelig ist als dein Ansatz.

    Aber versuchs doch mal mit ner SQLite Datenbank. Ich empfehle die Verwendung des SQLiteOpenHelper, die Vorgehensweise des SQLite Tutorials hier im Forum ist nicht weniger fummelig (Sorry ensacom ;) )...