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:
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).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; }
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!![]()