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 du Club
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 66
    Points
    66
    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 extrêmement actif 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
    Points : 814
    Points
    814
    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(); 
    	}
    }
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  3. #3
    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,


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


    a++

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

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

  5. #5
    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
    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 du Club
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 66
    Points
    66
    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 du Club
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 66
    Points
    66
    Par défaut
    via wget cela fonctionne nickel !

  8. #8
    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
    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 du Club
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Points : 66
    Points
    66
    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