Record Store

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.