# rms recordstore bleibt nach schießen der anwengung nicht erhalten



## shining (1. Mrz 2010)

Hallo,

ich programmier im moment mit der sun sdk3.

um daten zu speichern hab nutz ich rms. hier der code:


```
public Highscore(){
        vals = new String[size];
        try {
            RecordStore rs=RecordStore.openRecordStore("score", true);
            if(rs.getNumRecords()<=size){
                init();
            }else{
                for(int i = 1; i <= size; i++){
                    vals[i-1] = rs.getRecord(i).toString();
                }
            }
            rs.closeRecordStore();
        } catch(Exception e) {
            System.out.println("mist");
        }
    }

public void saveScore(){
        try {
            RecordStore rs = RecordStore.openRecordStore("score", true);
            if(rs.getNumRecords()==0){
                for(int i = 1; i <= size; i++){
                    byte[] b = vals[i-1].getBytes();
                    int j = rs.addRecord(b, 0, b.length);
                }
            } else {
                for(int i = 1; i <= size; i++){
                    byte[] b = vals[i-1].getBytes();
                    rs.setRecord(i, b, 0, b.length);
                }
            }
            rs.closeRecordStore();
            } catch(Exception e) {
                 System.out.println("mist");
            }
}
    public void init(){
        for(int i = 0; i < size; i++){
            vals[i] = "STEF 0";
        }
    }
```

wenn ich jetz das programm neu starte is der recordstore wieder leer. ich hab es im auch auf meinem handy nokia e66 ausprobiert, dort habe ich das selbe problem. sonst treten keine fehler wie exceptions oder so auf.

besten dank für eure hilfe

stefan


----------



## CNail187 (2. Mrz 2010)

Hallo!

Schau doch mal in diesen Thread hier:
http://www.java-forum.org/java-2-microedition/93750-programm-buch-funzt.html

Ganz am Schluss habe ich dort ein paar (von mir auch getestete) Beispiele verlinkt, wie man dem SDK3 die Speicherung von RMS-Daten so halbwegs beibringt.

Wieso die Daten direkt auf dem Telefon verloren gehen ist allerdings etwas mystisch und mit Sicherheit nicht im "Sinne des Erfinders"...

Gruß und viel Erfolg,
CNail


----------



## shining (2. Mrz 2010)

danke.

das einrichten im sdk ist mir nicht ganz so wichtig. wichtiger ist dass es auf dem telefon funktioniert. zur not kann ich das für ein paar test immer aufs handy ziehen. soll ja nix kompliziertes werden.

hatte jemand schon mal das gleich problem?

ich werd das morgen mal auf einem anderen gerät ausprobieren.

gibt es noch alternativen zu rms z.b. dirket in eine datei zu schreiben?


----------



## CNail187 (3. Mrz 2010)

Hallo!

Ja, direkter Dateizugriff wäre auch eine Idee, da das E66 laut Nokia die FileConnection API unterstützt.

Beispiele gibts

hier

hier

und hier

Gruß, CNail


----------



## shining (5. Mrz 2010)

danke für eure hilfe. 

es lag daran, dass ich beim ersten öffnen nix in den store geschrieben hab und ihn dann wieder geschlossen hab.

außerdem darf man nicht rs.getRecord(i).toString(); schreiben sondern new String(rs.getRecord(i));


----------

