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 :

Lenteur de téléchargement d'un premier fichier


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut Lenteur de téléchargement d'un premier fichier
    Bonjour,

    Dans une application je dois récupérer deux fichiers sur Internet donc j'utilise un code du style (pour chacun des fichiers) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    URL data = new URL("http://www.monsite.fr/data.xml");
    URLConnection dataConnection = data.openConnection();
    InputSource dis1;
    dis1 = new InputSource(dataConnection.getInputStream());
    de même pour un autre fichier hébergé sur le même site.

    Le premier téléchargement met environ 3 minutes tandis que le second est instantané.

    J'ai essayé avec uniquement le second mais cela met aussi 3 minutes, j'en conclurais que la première connexion est longue ? comment y remedier ?

    Merci pour vos réponses

  2. #2
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    essai avec ce 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    import java.net.*;
    import java.io.*;
     
     public class UrlUtils {
     
    	 public UrlUtils(String HOST) {
     
    		 try {
    			URL racine = new URL(HOST);
    			getFile(racine);
    		} catch (MalformedURLException e) {
    			System.err.println(HOST + " : URL non comprise.");
    		} catch (IOException e) {
    			System.err.println(e);
    		}
    	}
     
    	public void getFile(URL u) throws IOException {
    		 URLConnection uc = u.openConnection();
    		 String FileType = uc.getContentType();
    		 int FileLenght = uc.getContentLength();
    		 if (FileLenght == -1) {
    			 throw new IOException("Fichier non valide.");
    		 }
    		 InputStream in = uc.getInputStream();
    		 String FileName = u.getFile();
    		 FileName = FileName.substring(FileName.lastIndexOf('/') + 1);
    		 FileOutputStream WritenFile = new FileOutputStream(FileName);
    		 byte[]buff = new byte[1024];
    		 int l = in.read(buff);
    		 while(l>0)
    		 {
    		 WritenFile.write(buff, 0, l);
    		 l = in.read(buff);
    		 }
    		 WritenFile.flush();
    		 WritenFile.close(); 
    	}
    }

  3. #3
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Quel système d'exploitation ? Quelle version de Java ?


    a++

    PS : pensez à libérer vos ressources dans un finally !

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    version : java 1.6
    OS : Debian sarge

  5. #5
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Par curiosité : as-tu essayé de télécharger le fichier avec un navigateur ou en ligne de commande (avec wget ou curl) ?

    a++

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    je viens de tester ton code mais ça n'est pas plus rapide. Merci quand même.

    La version de java ou l'OS peut y être pour quelque chose ?

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    via wget cela fonctionne nickel !

  8. #8
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par shawty Voir le message
    La version de java ou l'OS peut y être pour quelque chose ?
    C'est possible... J'ai demandé cela car il existait un bug avec Windows/Java 5 qui donnait des accès DNS très très long...


    Sinon essayes de logguer pour déterminer l'origine des lenteurs (connexion, lecture du flux, fermeture, autres...)


    a++

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    alors l'open.Connection() est instantanné, c'est le getInputStream() qui met trop de temps.

Discussions similaires

  1. Téléchargement partiel d'un fichier
    Par Oscar Hiboux dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 27/11/2006, 19h34
  2. Problème avec le téléchargement forcé d'un fichier
    Par sunshine33 dans le forum Langage
    Réponses: 14
    Dernier message: 08/11/2006, 10h24
  3. Téléchargement et ouverture de fichier
    Par Nathan dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2006, 16h18
  4. téléchargement forcé, taille du fichier nulle
    Par manaboko dans le forum Langage
    Réponses: 8
    Dernier message: 30/11/2005, 11h45
  5. [HTTP_REFERER] trouver l'uri dossier au premier fichier
    Par Husqvarna dans le forum Langage
    Réponses: 3
    Dernier message: 28/10/2005, 22h05

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