Converter objecto em byte[]

2 respostas
merlinX

Viva,
Pessoal estou aqui numa aflição tremenda pois não estou a conseguir efectuar uma operação importantíssima para meu projecto.
Eu tenho uma classe que implementa um tuplo de objectos.
Isto é tenho objectos diferentes neste tuplo ex:

tuploDados = new Tuplo(objecto1, objecto2, objecto3);

objecto1 é uma String.
objecto2 é um BigInteger
objecto3 é um objecto que armazena internamente um inteiro

O meu problema é que não consigo converter este objecto tuploDados para um array de bytes (byte[]) com este método:

public byte[] getBytes(Object obj) {

byte[] result = null;

ObjectOutputStream oos = null;

try {

ByteArrayOutputStream bos = new ByteArrayOutputStream();

oos = new ObjectOutputStream(bos);

oos.writeObject(obj);

oos.flush();

oos.close();

bos.close();

result = bos.toByteArray();
} catch (IOException ex) {
        System.err.println("Falhou no getBytes() a converter objecto num array de bytes");
    } 
    return result;
}

Agradecia imenso alguma ajuda, obrigado desde já.

2 Respostas

victorjabur

Olá merlinX,

Para resolver o seu problema:

Descrição do Erro:

java.io.NotSerializableException: exemplos.Tuplo

at java.io.ObjectOutputStream.writeObject0(Unknown Source)

at java.io.ObjectOutputStream.writeObject(Unknown Source)

at exemplos.Teste.getBytes(Teste.java:22)

at exemplos.Teste.main(Teste.java:12)

Solução:
Sua classe Tuplo deve implementar a interface java.io.Serializable.

Ficando assim:

public class Tuplo implements Serializable {
}

Abraços, …

merlinX

Já tinha resolvido o problema dessa forma, de qualquer das maneiras muito obrigado pela atenção e tempo gasto para me ajudar.

Cumprimentos.

Criado 10 de maio de 2009
Ultima resposta 10 de mai. de 2009
Respostas 2
Participantes 2