sim quero capturar os bytes do Objeto que eu estanciar, mas não serializando ele! Se eu não me engano se eu serializar ele e encapsular em um ObjectOutputStream vou gerar um arquivo (o que preciso evitar)!
O intuíto é qual quero transmitir uma classe simples para um celular por ex: ImageEvent, nesta classe só pode conter recusrsos simples pois J2ME não aceita serialização!!!
Por isto preciso capturar os bytes do objeto sem serializar!!
Ah, entendi. JavaME não tem esse conceito; você provavelmente vai ter de fazer as coisas “no braço”, usando ByteArrayOutputStream / ByteArrayInputStream e DataInputStream / DataOutputStream. Vou dar mais ou menos um exemplo.
class Pessoa {
public String nome; public int idade;
}
class Exemplo {
byte[] codificaPessoa (Pessoa p) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream (baos);
dos.writeUTF (p.nome); dos.writeInt (idade);
dos.close();
return baos.toByteArray();
}
Pessoa decodificaPessoa (byte[] bytes) throws Exception {
ByteArrayInputStream bais = new ByteArrayInputStream (bytes);
DataInputStream dis = new DataInputStream (bais);
Pessoa p = new Pessoa();
p.nome = dis.readUTF(); p.idade = dis.readInt();
dis.close();
return p;
}
}
cara acho que é por ai, agora digamos que minha classe contenha os seguintes atributos.
public class ImageTest
{
private byte[]image;
private long date;
private int precision;
public ImageTest decodificar(byte[] byte)
{
ByteArrayInputStream in = new ByteArrayInputStream(byte);
DataInputStream input = new DataInputStream(in);
long date = input.readLong();
int precision = imput.readInt();
byte[] date = ? [b]// como eu faria apartir do array de bytes recebido por parâmetro, buscar o array de bytes da imagem?[/b]
return new ImageTest(image, date, precision);