Envoie de fichier par socket
Bonjour,
Je cherche à envoyer un fichier d'un coup par socket, je pense que mon code est bon mais je ne reçois rien ..
J'ai vu pas mal de solution sur le net qui consistait à découper le fichier en tableau de Byte mais à priori, il devrait être possible d'envoyer directement un objet File non ?
Un bout de mon code :
Serveur :
Code:
1 2 3 4
|
File f = new File(fichier);
System.out.println("f.length : "+f.length());
envoieObjet.writeObject(f); //envoieObjet est un objet de type ObjectOutputStream |
Client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
File f = new File(str); //str est le nom du fichier envoyé précédemment
try {
FileWriter fw = new FileWriter(f);
FileReader reader = new FileReader((File)RecoiFichier.readObject()); //RecoiFichier est un objet de type ObjectInputStream
try {
char[] cbuf = new char[2048];
int len;
while ( (len = reader.read(cbuf)) > 0 ) {
fw.write(cbuf, 0 , len);
}
} finally {
reader.close();
fw.flush();
fw.close();
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // lecture de l'écho
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} |