Problemas con RMS
Buenas, tengo problemas al borrar los registros del Record Store (RS), ya que cuando los borras el id del registro no se puede volver a utilizar, entonces para leer el RS en vez de recorrer todos los indices, porque me daba error al intentar leer los registros borrados, he utilizado un RecordEnumeration con hasNextElement(), pero no consigo recuperar bien la informacion que devuelve en el array de bytes, Necesito recuperar un entero un string y un long por el momento.
Este seria el codigo que utilizo, agradeceria cualquier solucion o variante para recoger bien todos los elementos. Gracias
try{
RecordEnumeration re = Registro.rs.enumerateRecords(null,null,false);
bais = new ByteArrayInputStream(regist);
dis = new DataInputStream(bais);
int i=1;
while (re.hasNextElement()){
regist= re.nextRecord();
try {
ejercito= dis.readInt();
cadena= new String(dis.readUTF()+": "+dis.readLong()+" puntos");
System.out.println(cadena);
} catch (IOException e2) {
System.err.println("Error dis.read");
}
this.insert(i-1,cadena,null);
bais.reset();
i++;
}//del while
bais.close();
dis.close();
regist = null;
}catch (RecordStoreException e){
System.out.println("Error recordenumeration en leer registros");
}
Este seria el codigo que utilizo, agradeceria cualquier solucion o variante para recoger bien todos los elementos. Gracias
try{
RecordEnumeration re = Registro.rs.enumerateRecords(null,null,false);
bais = new ByteArrayInputStream(regist);
dis = new DataInputStream(bais);
int i=1;
while (re.hasNextElement()){
regist= re.nextRecord();
try {
ejercito= dis.readInt();
cadena= new String(dis.readUTF()+": "+dis.readLong()+" puntos");
System.out.println(cadena);
} catch (IOException e2) {
System.err.println("Error dis.read");
}
this.insert(i-1,cadena,null);
bais.reset();
i++;
}//del while
bais.close();
dis.close();
regist = null;
}catch (RecordStoreException e){
System.out.println("Error recordenumeration en leer registros");
}
Lo que tenes que hacer en ese caso, no es borrar uno por uno, sino lo que tenes que hacer es un RecordStore.deleteRecordStore(); y listo, cuando vuelvas a abrir el mismo lo tendras vacio y con los indices vacios desde el primero; espero que te sirva a esta altura, porq por lo que vi preguntaste en abril y estamos a septiembre.
