IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Problème de téléchargement d'un fichier local en Java 1.7


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Problème de téléchargement d'un fichier local en Java 1.7
    Bonjour,
    J'ai un problème assez spécial avec l'utilisation d'un inputStream sur une url local. Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    	public void Test2() throws IOException {
    		final URL url = new URL("http://localhost/Wildlife.wmv");
    		final InputStream in = url.openStream();
    		final FileOutputStream destinationFile = new FileOutputStream("F:\\Mes documents\\Wildlife.wmv");
     
    		final byte[] buffer = new byte[4000];
     
    		int bytesRead = 0;
    		while ((bytesRead = in.read(buffer)) != -1) {
    			System.out.println(bytesRead);
    			destinationFile.write(buffer);
    		}
    		destinationFile.flush();
    	}
    Le code ci dessus est l'une des nombreuses méthodes que j'ai testé mais qui me donne le même problème.
    Si je teste ce code avec java 1.6 32bit et 1.6 64bit, tout fonctionne bien. Mon fichier de 25 Mo est correctement récupéré. Par contre si je teste avec java 1.7 64 bit, ça ne fonctionne pas. L’exécution se bloque dans le read après avoir lu 18285 bytes.
    La sortie donne:
    4000
    4000
    4000
    4000
    2285

    J'ai eu l'idée de tester avec un autre fichier en local et même problème. Par contre avec un fichier sur une url distante, j'ai testé: http://apache.mirrors.lucidnetworks....cat-6.0.35.zip, le téléchargement s'effectue correctement.

    Du coup je n'y comprend plus rien. Qu'est ce qui bloque mon téléchargement en java 1.7 sur une URL en local? Est ce que quelqu'un aurait une idée du problème ou de ce que je pourrais encore tester?

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    En plus du fait que tu ne libères pas correctement tes flux (wia un try-with-ressource, ou des try-finally si tu veux garder ton code compatible java 1.6 ou inférieur), je remarques surtout que ta copie du buffer est incorrecte puisque tu ne précises pas la taille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // ton code :
    destinationFile.write(buffer);
     
    // ce que tu devrais faire :
    destinationFile.write(buffer, 0, bytesRead);
    a++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Désolé pour le retard. Alors je viens de relancer mes tests. Exactement les même qu'au moment où j'ai posé ma question et MAGIE ça a fonctionné. En gros, ça bloquait dans le read après avoir lu 18285 bytes et là ça lisait tout. Ça devait venir de mon PC ><

    Après, j'avais effectivement en plus une erreur au niveau de l'écriture. Merci pour ta réponse adiGuba, je ne savais pas qu'il fallait préciser le nombre de bytes à écrire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2014, 15h18
  2. Réponses: 4
    Dernier message: 09/09/2013, 14h23
  3. problème de Téléchargement d'un Fichier PDF.
    Par aymen8219 dans le forum C#
    Réponses: 6
    Dernier message: 11/10/2012, 09h40
  4. Problème de lien vers un fichier local
    Par Alain15 dans le forum Langage
    Réponses: 17
    Dernier message: 20/07/2006, 15h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo