Pessoal,
alguém sabe me dizer aonde fica armazenado os dados manipulados pelo record store? fica na memória do próprio aparelho ou no chip? tem a possibilidade de configurar isso?
obrigado.
Pessoal,
alguém sabe me dizer aonde fica armazenado os dados manipulados pelo record store? fica na memória do próprio aparelho ou no chip? tem a possibilidade de configurar isso?
obrigado.
[quote=viniciusams]Pessoal,
alguém sabe me dizer aonde fica armazenado os dados manipulados pelo record store? fica na memória do próprio aparelho ou no chip? tem a possibilidade de configurar isso?
obrigado.[/quote]
Fica na memória e não tem a possibilidade de configurar. Ainda bem que é assim.
Se a pessoa quer usar um armazenamento em outros locais, que use outra API, como a FileConnection.
ok!
obrigado!
Boone, você consegue me ajudar neste problema?
continua sendo relacionado a RecordStore.
tenho classe abstrata Produto e quero armazenar e recuperar objetos de classes filhas de Produto. Para armazenar é beleza, faço da seguinte forma:
public void addProduto(Produto p) throws IOException, RecordStoreNotOpenException, RecordStoreException{
try{
byte[] rec = p.getBytes();
rs.addRecord(rec, 0, rec.length);
}catch(Exception e){
System.out.println("ERRO - INSERÇÃO");
}
}
classe CD que herda de Produto:
[code]public class CD extends Produto {
…
public byte[] getBytes() throws IOException {
ByteArrayOutputStream obs = new ByteArrayOutputStream();
DataOutputStream writer = new DataOutputStream(obs);
writer.writeUTF(this.getCategoria());
writer.writeUTF(this.getNome());
writer.writeUTF(this.getArtista());
writer.writeUTF(this.getGravadora());
writer.writeUTF(this.getAno());
writer.writeUTF(this.getGenero());
writer.writeDouble(this.getPreco());
writer.flush();
byte[] rec = obs.toByteArray();
writer.close();
obs.close();
return rec;
}
[/code]
Agora para dar um get no RecordStore estou com dificuldade, porque eu tenho várias classes que herdam de Produto e pode ser qualquer uma.
Você saberia como posso fazer???
obrigado
instanceof não te ajuda a determinar qual é a classe que herda de Produto e por aí vc dá o devido tratamento ?
cara, instanceof era o ideal, porém estou desenvolvendo um framework, logo meu código não conhece as classes que serão filhas.
Tem outra solução? uso de hash table?
valeu
[quote=viniciusams]cara, instanceof era o ideal, porém estou desenvolvendo um framework, logo meu código não conhece as classes que serão filhas.
Tem outra solução? uso de hash table?
valeu[/quote]
Reinventando a Roda…
Da uma olhada no floggy. Ele pode te auxiliar muito nas suas duvidas mesmo que vc queira fazer outro Frame
Ae brother, presentinho pra ti: 8) 8) 8) 8)
[code]public void writeRecStore(String[] sData)throws
RecordStoreException {
try {
ByteArrayOutputStream strmBytes = new ByteArrayOutputStream();
DataOutputStream strmDataType = new DataOutputStream(strmBytes);
byte[] record;
strmDataType.writeUTF(sData[0]);
strmDataType.writeUTF(sData[1]);
strmDataType.writeUTF(sData[2]);
strmDataType.writeUTF(sData[3]);
strmDataType.writeUTF(sData[4]);
strmDataType.writeUTF(sData[5]);
strmDataType.writeUTF(sData[6]);
strmDataType.flush();
record = strmBytes.toByteArray();
rs.addRecord(record,0,record.length);
strmBytes.reset();//Inicia a escrita no começo do array interno
strmBytes.close();
strmDataType.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
public void readStream(byte[] data){
try{
ByteArrayInputStream strmBytes = new ByteArrayInputStream(data);
DataInputStream strmDataType = new DataInputStream(strmBytes);
this.setNome(strmDataType.readUTF());
this.setAddress(strmDataType.readUTF());
this.setTelefone(strmDataType.readUTF());
this.setBirthday(strmDataType.readUTF());
this.setIdade(strmDataType.readUTF());
this.setFood(strmDataType.readUTF());
this.setMusic(strmDataType.readUTF());
System.out.println("---------------------------");
strmBytes.close();
strmDataType.close();
}
catch(Exception e){
System.out.println("Nao há Registros!!!");
}
}[/code]
Caso você queira definir uma busca no RMS, recomendo escrever como primeiro campo, exemplo: Id , Nome.
Faça a comparação antes de ler os dados no rms.
E assim pegue todos os valores restantes do cadastro.
Lembrando, quando você faz um readUTF ou writeUTF o mesmo le e escreve na ordem dada.
Abraço.