cdere
03-07-2010, 21:11
Salve a tutti,
innanzitutto grazie a quanti risponderanno, veniamo al problema:
applicazione client-server, il server serializza un oggetto con il seguente metodo:
public void sendFile(ObjectOutputStream out) throws FileNotFoundException, IOException{
OutputStream outStream = new BufferedOutputStream( out );
// Definisco l'OutputStream necessario per la serializzazione dell'oggetto (ObjectOutputStream)
ObjectOutputStream objStream = new ObjectOutputStream( outStream );
objStream.writeObject(this); // serializzazione
outStream.close(); // chiudo lo stream (necessario per gestire la bufferizzazione)
}
out come si può vedere è un ObjectOutputStream che ottengo dalla socket, bene.
Quello che voglio fare è scrivere l'oggetto serializzato su file sul client quindi cosa faccio:
OutputStream outFile=new FileOutputStream("prova.dat");
byte buf[] = new byte[1024];
int len;
while((len = in.read(buf))>0)
outFile.write(buf, 0, len);
outFile.close();
il file lo scrive ma differisce stranamente di qualche byte, chiaramente poi la deserializzazione non funziona, aiuuuuuto :D
p.s. se c'è una maniera meno grezza di trasferire questo benedetto file di un oggetto serializzato ben venga ;)
innanzitutto grazie a quanti risponderanno, veniamo al problema:
applicazione client-server, il server serializza un oggetto con il seguente metodo:
public void sendFile(ObjectOutputStream out) throws FileNotFoundException, IOException{
OutputStream outStream = new BufferedOutputStream( out );
// Definisco l'OutputStream necessario per la serializzazione dell'oggetto (ObjectOutputStream)
ObjectOutputStream objStream = new ObjectOutputStream( outStream );
objStream.writeObject(this); // serializzazione
outStream.close(); // chiudo lo stream (necessario per gestire la bufferizzazione)
}
out come si può vedere è un ObjectOutputStream che ottengo dalla socket, bene.
Quello che voglio fare è scrivere l'oggetto serializzato su file sul client quindi cosa faccio:
OutputStream outFile=new FileOutputStream("prova.dat");
byte buf[] = new byte[1024];
int len;
while((len = in.read(buf))>0)
outFile.write(buf, 0, len);
outFile.close();
il file lo scrive ma differisce stranamente di qualche byte, chiaramente poi la deserializzazione non funziona, aiuuuuuto :D
p.s. se c'è una maniera meno grezza di trasferire questo benedetto file di un oggetto serializzato ben venga ;)