begin process at 2012 02 12 18:16:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Au secours

 > 

Transfert de fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Transfert de fichier

jeudi 18 novembre 2004 à 22:22:12 | Transfert de fichier

AbriBus

Bonjour,
je voudrais savoir comment faire un transfert de fichier par un socket... j'ai deja essayé de le faire avec u tableau byte mais en recepetion, le fichier n'etait pas exactement le meme que l'original... je travaille avec des fichiers de l'ordre de la dizaine de mega et quand je m'interroge sur une eventuelle "perte de qualité" je me dit que ce doit etre une hérétie que de penser qu'il ne soit pas possible de faire une copie parfaite...

une idée ?

Que le socket soit avec toi...

AbriBus...
vendredi 19 novembre 2004 à 18:25:37 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
import java.net.*;
import java.io.*;

class connection extends Thread implements Runnable {
public void run() {

try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(
"url.txt"));
fich = (String) in.readObject();
in.close();
} catch (IOException e) {
System.err.println("fichier non lu ou fichier inexistant veuillez entre une adresse ou cliquer sur defaut dans les options de connection voici l'exception renvoye");
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.err.println("fichier de classe non trouve");
e.printStackTrace();
}

String host = fich + "/*un nom de fichier*/";

try {
URL racine = new URL(host);
connecting(racine);
} catch (MalformedURLException e) {
System.err.println(host + " : URL non compris.");
} catch (IOException e) {
System.err.println(e);
}

}// fin de main

public static void connecting(URL u) throws IOException {

URLConnection uc = u.openConnection();
String typeDeContenu = uc.getContentType();
int tailleDuContenu = uc.getContentLength();
if (tailleDuContenu == -1) {
throw new IOException("Il ne s'agit pas d'un fichier binaire."
+ typeDeContenu + tailleDuContenu + uc);
}

InputStream brut = uc.getInputStream();
InputStream entree = new BufferedInputStream(brut);
byte[] donnees = new byte[tailleDuContenu];
int octetsLus = 0;
int deplacement = 0;
while (deplacement < tailleDuContenu) {
octetsLus = entree.read(donnees, deplacement, donnees.length
- deplacement);
if (octetsLus == -1)
break;
deplacement += octetsLus;
}
entree.close();
File file = new File("id.dd");
if(file.exists())System.out.println("le fichier a bien ete telecharge");

if (deplacement != tailleDuContenu) {
throw new IOException("Nous n'avons lu que " + deplacement
+ " octets au lieu des " + tailleDuContenu + " attendus");
}

String nomfichier = u.getFile();
nomfichier = nomfichier.substring(nomfichier.lastIndexOf('/') + 1);
FileOutputStream fichiersortant = new FileOutputStream(nomfichier);
fichiersortant.write(donnees);
fichiersortant.flush();
fichiersortant.close();

}
File file = new File("id.dd");
private String fich;
}

voila je t'ai donner ce que j'avais fait tu peut evidemment le modifier comme bon te semble : dans ce code l'url et recuperé dans un fichier txt et le nom du fichier et ajouter apres

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
vendredi 19 novembre 2004 à 18:29:09 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
ps : ca marche pour tout genre de fichier normalement meme les non binaire




"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
vendredi 19 novembre 2004 à 18:33:02 | Re : Transfert de fichier

AbriBus

Merci, je vais jetter un oeil, mon objectif est un transfert de MP3 (donc binary je presume)... La seule contrainte a ma requette c'est que le fichier en sortie soit EXACTEMENT similaire au fichier d'entrée (comparaison byte à byte)...

je l'ai pas ecore testé mais ce que je lis la me semble tres tres interressant... des que je l'ai fait tourné, je te tient au courant... (donc dans pas longtemps )

Bribus...
vendredi 19 novembre 2004 à 20:13:03 | Re : Transfert de fichier

AbriBus

resalut,
voila, je met une reponse acceptée car le code que tu as posté est bon, et que si je parvient pas a mes fins, j'utiliserais ca... mais dans ce code, tu télécharge un fichier existant d'une tierce plateforme. Une fois de plus je le repete, ce code est tres interressant et en soit, il est mortel (d'autant plus que j'avais posté dans le forum une question qui attendait EXACEMENT cette reponse à ce jour toujours sans reponse lol ) mais ce n'est pas tout a fait ce vers quoi je voulais aller... la nuance est subtile mais je pense que ca doit passablement modifier les choses... je developpe un truc client/serveur et le fichier doit etre lu par le serveur puis envoyé par son client par un socket... (question de securité)...
as tu deja bossé sur un truc du genre, sinon as tu une suggestion de transformation de ce code pour parvenir a mes fins ? (je ne voit pas comment passer d'une adresse URL à un socket)...
Quoi qu'ill en soit, merci pour cette premiere reponse...

AbruBis...
vendredi 19 novembre 2004 à 20:25:39 | Re : Transfert de fichier

AbriBus

....arf... avec tout ce que tu as mis dans ton code... je devrais m'en sortir... a vue de nez comme ca...

Je vois que le socket est avec toi...

AbriBus...
vendredi 19 novembre 2004 à 20:50:13 | Re : Transfert de fichier

AbriBus

je suis en train de bosser avec ta source et il me met ca le bonhomme...:


fichier non lu ou fichier inexistant veuillez entre une adresse ou cliquer sur defaut dans les options de connection voici l'exception renvoye
java.io.StreamCorruptedException: invalid stream header
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253)
at connection.run(Testeur.java:48)
nullC:\TestTran.tmp : URL non compris.
vendredi 19 novembre 2004 à 22:05:41 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
dit moi l'url que tu as entree?
en fait je voulais faire aussi un truc du genre serveur client mais g prefere faire un client plus developpe(c plus simple)!!! ca te met : "fichier non lu ou fichier inexistant veuillez entre une adresse ou cliquer sur defaut dans les options de connection voici l'exception renvoye";
car c exactement le code que g mis donc fait les modif approprié
remarque il ne marche que pour les url et non les chemin sur disque dur(C:\TestTran.tmp) ou encore en reseau local
au niveau de la similitude je croi qu'il n'y auras aucun probleme!!
je doit dire que je ne l'ai teste que en reseau local et pour des petit fichier je n'ai donc aucune idee de la vitesse



"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
vendredi 19 novembre 2004 à 22:06:42 | Re : Transfert de fichier

sheorogath

Membre Club Administrateur CodeS-SourceS
ps: si je peut t'aider n'hesite pas a demander


"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
vendredi 19 novembre 2004 à 22:12:18 | Re : Transfert de fichier

AbriBus

je suis en train de faire une refonte de ce code... ca marche presque mais quand je remplis un tableau de byte (avec comme objectif de l'envoyer par le socket) ca marche bien a une exception pres... mon fichier de sortie contient une suite de caractères (probablement des byte) répétitive dans le fichier et apparament a intervals égaux. Voici la suite de caractère: "¬í z  " lol...
voila le code en l'état...:

public static void main(String[] args)
{
ByteArrayOutputStream FileToSend = new ByteArrayOutputStream();
File Element = new File("C:\\grrr.txt");
FileInputStream tmmp;
byte TabByte[] = new byte[(int)(Element.length())];

try
{
tmmp = new FileInputStream(Element);
tmmp.read(TabByte);
}
catch(Exception e)
{
System.out.println("Tableau pas cree");
System.out.println(e.getMessage());
TabByte = null;
}

try
{
FileOutputStream fos = new FileOutputStream("C:\\grrr3.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.write(TabByte);

oos.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}


1 2 3

Cette discussion est classée dans : fichier, transfert, socket


Répondre à ce message

Sujets en rapport avec ce message

transfert de fichier xml par socket [ par arnoo59 ] Salut à tous,quelqu'un(e), aurais t il une source me permettant de comprendrecomment transférer un fichier XML via un réseau wifi sur une architecture Envoie fichier binaire par socket ftp [ par GNIFR ] Bonjour,je cherche à envoyer un fichier(et le renommer en meme temps ca serait l'ideal) par ftp, pour cela je cré un socket ftp (je sais pas si c comm trabsferts fichiers via le reseau [ par cnec ] Bonjour,J'ai un petit souci. J'ai 2 ordis en reseau, je veux transferer un fichier dtd et un fichier xml et un fichier image. Tout d abord est ce que transfert de flux vidéo via socket en java [ par houcine1 ] salut tout le monde, je suis un étudiant en réseau et je prépare un projet de fin d'étude sur le transfert vidéo  sur wifi et j'ai  besoin d'un progra transfert du son en RTP [ par sarafaiz ] Bonjour,je veux faire le transfert du son entre deux PC en RTP et JMF, la source du son est un fichier, j'ai fait le code suivant mais ca n'a pas marc transfert de fichier entre deux pc avec java [ par youba2000 ] bonjours, j'ai une application qui sert a faire le crypter/décrypter un ficher avec un algorithme de CESAR, je chercher a échanger les fichier crypter transfert de fichier grâce a OBEX? [ par danielpereira ] Bonjour, Je voudrais faire le transfert d’un fichier, via bluetooth, qui se trouve dans un stéthoscope digital. En utilisant l’API Bluecove, j’ai réus trensfert fichier via socket [ par ezzineahmed ] bonjour, svp quelqu'un peut m'aider, je veut transférer des fichiers via des socket, ça marche seulement pour les fichiers txt. je veut transférer tou API pour transfert de fichier via port série [ par Vanatou ] Bonjour, Mon but est de faire du transfert de fichier par port série entre deux PC. Je dois être capable de détecter des erreurs dans la transmission


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales