Salve a tutti, nel mio programma ho bisogno di creare uno stream di byte a partire da un'istanza di una classe (la classe Data), e poi ricostruire l'oggetto a partire dallo stream. Ho questi due metodi:
codice:
public ByteArrayOutputStream dataToStream(Data data) throws IOException{ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(buffer);
oos.writeObject(data);
oos.close();
return buffer;
}
public Data streamToData(ByteArrayOutputStream baos) throws IOException, ClassNotFoundException{ byte[] rawData = baos.toByteArray();
ByteArrayInputStream bais = new ByteArrayInputStream(rawData);
ObjectInputStream ois= new ObjectInputStream(bais);
Data data = (Data) ois.readObject();
ois.close();
return data;
}
la classe Data implementa l'interfaccia Serializable, e ha tra gli attributi, oltre a variabili di tipo stringa o double, anche un oggetto (di classe Object, a seconda degli usi del programma può avere tipo diverso).
Quando provo ad eseguire il programma ricevo come errore:
Data cannot be cast to ByteArrayOutputStream oppure viceversa ByteArrayOutputStream cannot be cast to Data
Dove sbaglio? Grazie in anticipo!