Problème de transfert de fichier en JAVA
Svp aidez moi à trouver l'erreur:
j'ai 3 classe ici. je n'ai pas mis les classes interface:
Serveur:
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 26 27 28 29 30 31 32 33
|
package envoi_fichier;
import static envoi_fichier.Transfert.transfert;
import java.io.*;
import java.net.*;
public class Serveur2 {
public Serveur2() {
String fichier_recu="t";
try {
ServerSocket ss = new ServerSocket(7000);
System.out.println("le serveur est en attente de connexion!");
Socket s =ss.accept();
FileInputStream is =(FileInputStream) s.getInputStream();
System.out.println("Connexion etablie ok!");
System.out.println("reception du fichier en cours!");
BufferedInputStream buff= new BufferedInputStream(is);
BufferedReader in=new BufferedReader(new InputStreamReader(buff));
fichier_recu=in.readLine();
System.out.println(fichier_recu);
transfert(s.getInputStream(),new FileOutputStream("F:\\beans\\serveur\\"+fichier_recu), true);
System.out.println("Fichier reçu!");
System.out.println("Chemin du fichier: F:\\beans\\serveur\\"+fichier_recu);
} catch (IOException e) {
}
}
} |
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 26 27 28 29 30 31
|
package envoi_fichier;
import static envoi_fichier.Transfert.transfert;
import java.io.*;
import java.net.*;
import java.nio.file.Path;
public class Envoie {
public String repertoire;
public String ip;
public int chaine_port;
public Envoie(String repertoire, String ip, int chaine_port) {
super();
try{
Socket s=new Socket(ip, chaine_port);
transfert(new FileInputStream(repertoire),s.getOutputStream(),true);
s.close();
System.out.println(repertoire);
System.out.println("Transfert terminé!");
}catch(IOException e){
}
}
} |
La classe Transfert:
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
|
package envoi_fichier;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Transfert {
public static void transfert(InputStream is, OutputStream os, boolean closeOnExit) throws IOException{
byte buf[] = new byte[1024];
int n;
while((n=is.read(buf))!=-1)
os.write(buf,0,n);
if (closeOnExit){
is.close();
os.close();
}
}
} |
L'attribut réception est censé êrtre le fichier reçu du serveur, mais le serveur me renvoie 'null'.
Merci de m'aider.
Voici le résultat chez le serveur:
le serveur est en attente de connexion!
Connexion etablie ok!
reception du fichier en cours!
null
Fichier reçu!
Chemin du fichier: F:\beans\serveur\null