ho risolto così:
parte di codice per inviare un file
codice:
OutputStream s1out = socket.getOutputStream();
FileInputStream fin = new FileInputStream(nome);
dos = new DataOutputStream(s1out);
dis = new DataInputStream(fin);
byte buffer[] = new byte[dis.available()]; 
ObjectOutputStream oos = new ObjectOutputStream( socket.getOutputStream() );             
fin.read(buffer);             
oos.writeObject( buffer );             
System.out.println("File Inviato!");

parte per ricevere
codice:
 
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());             
File file = new File(nome);             
byte[] pacchetto = null; 
// Ricevo il pacchetto dati             
try {                 
pacchetto = (byte[]) ois.readObject();             
} catch (Exception e) {                 
System.err.println("Errore nel byte[]" + e.getMessage());             
}  
// Lo scrivo nel file di destinazione             
FileOutputStream fos = new FileOutputStream(ricevuti + nome + ".xml");
fos.write(pacchetto);             
fos.close();

Grazie per l'aiuto andbin