Meu rms não persiste dado nenhum

bom , estou tendo aula sobre rms atualmente na minha faculdade , em casa fiz um simples código para fazer um teste . segue ele abaixotry { RecordStore r = RecordStore.openRecordStore("records", true); prop1 = "prop1"; System.out.println(r.addRecord(prop1.getBytes(), 0, prop1.getBytes().length)); System.out.println(new String(r.getRecord(1))); r.closeRecordStore(); r = RecordStore.openRecordStore("records", true); System.out.println(new String(r.getRecord(1))); } catch (RecordStoreFullException e) { e.printStackTrace(); } catch (RecordStoreNotFoundException e) { e.printStackTrace(); } catch (RecordStoreException e) { e.printStackTrace(); }
ele gera nenhum tipo de erro e a primeiro uso ele faz tudo certo , problema eh quando eu executo ele denovo (sem o código)System.out.println(r.addRecord(prop1.getBytes(), 0, prop1.getBytes().length));já que eu na primeira vez eu adiciono , na segunda quando eu mando ler o RecorStore ele gera um erro do tipo InvalidRecordException assim como se o dado que eu salvei tivesse sumido depois que a primeira execução termino. e eu num faço idéia do que possa ser eu to usando o eclipse , será que eu to esquecendo de alguma configuração ou eh erro no código eu num estou vendo.

  try {  
              RecordStore r = RecordStore.openRecordStore("records", true);  
              prop1 = "prop1";  
              System.out.println(r.addRecord(prop1.getBytes(), 0, prop1.getBytes().length));  
              System.out.println(new String(r.getRecord(1)));  
                            
          } catch (RecordStoreFullException e) {  
              e.printStackTrace();  
          } catch (RecordStoreNotFoundException e) {  
              e.printStackTrace();  
          } catch (RecordStoreException e) {  
              e.printStackTrace();  
          }  finally{
                       r.closeRecordStore();   
               }

Tirei duas linhas que aparentemente faziam a mesma coisa que no começo do teu codigo que era abrir o RS e dps da o r.getRecord(I); mas o problema maior seria quando vc criava o record novamente dava o r.getRecord(i); mas não dava close , somente deu close na primeira vez. Mas vê se esta forma que fiz fica melhor pra vc! []'s

na verdade isso que voce comento foi de próposito foi pra confirma se os dados que eu gravava sumia quando o programa acaba ou quando eu fecho o RecordStore , ele grava - ler - fecha - lerdnv , e funciona só quando quando o programa acaba o dado que eu gravei somi :?

Se os dados somem quando vc fecha o Emulador isto é quase que Normal…

Aqui acontece direto de sumir os dados depois que fecho e abro o emulador…

E só para auxiliar na Persistencia com o RMS utilize o Floggy

beleza , vou dar uma olhada neste framework valeu.

tenta ver se ajuda

public String getRecord(int id) { String toReturn = ""; try { int recordSize = rs.getRecordSize(id); byte[] data = new byte[recordSize]; ByteArrayInputStream bais = new ByteArrayInputStream(data); DataInputStream dis = new DataInputStream(bais); int numBytes = rs.getRecord(id, data, 0); toReturn = dis.readUTF(); bais.reset(); bais.close(); dis.close(); } catch (IOException e) { e.printStackTrace(); } catch (ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } catch (InvalidRecordIDException e) { e.printStackTrace(); } catch (RecordStoreNotOpenException e) { e.printStackTrace(); } catch (RecordStoreException e) { e.printStackTrace(); } return toReturn; }

deu o problema que eu imaginei - RecordStoreNotFoundException - , problema eh que quando eu crio um RecordStore e acaba o programa , ele some ai quando eu executo o programa dnv ele num encherga , na primeira vez eu estava criando deste jeitoRecordStore r = RecordStore.openRecordStore("records", [b]false[/b]);
ai invez de ele dispara o erro ele criava um novo mais sem nada , agora u setei falso e deu o q deu.
agora eu num fasso a minima idéia q q possa ser