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

Entrée/Sortie Java Discussion :

Lecture fichier via url ou file, différence ?


Sujet :

Entrée/Sortie Java

  1. #21
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut
    Ok...

    le probleme me semble etre en fait la distance entre le pc d'éxécution et le serveur sur lequel se situe le fichier.
    Car en local (via url ou file), pas de souci, c'est à dire comme tu as testé.
    De mon coté, sur serveur se situant sur un réseau proche du mien, ca ne load pas complétement, environ que la moitié.
    Et là, je viens de faire le test avec un serveur client situé en belgique et ca ne load que le tiers.

    J'ai donc l'impression qu'il y a une correspondance. As-tu la possibilité de tester sur un serveur qui se trouve plus "loin" ou pas ?

  2. #22
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    ca marche aussi sur un serveur http sur le reseau local... mais bon c'est du 100Mbs switché alors bof.

    je poursuis les tests...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #23
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut
    Ok merci. Pour ma part je reviens vers les 13h30, je vais manger, bon ap

  4. #24
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut
    Pourrais-tu faire le teste avec un fichier de taille supérieure ou égale à 876 832 octets ?

    Car j'utilise la meme méthode ailleurs dans un prog pour bien d'autres fichiers et tous passent nickel sur quelque serveur que ce soit. Mais ils ont tous une taille de 1 ou 2 ko seulement.

    Je voudrais voir si tu as le meme pb ou pas avec une grande taille.

    Encore merci pour ton aide

  5. #25
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    J'ai reussi a reproduire le phenomene. C'est bien lié a l'inputStream qui ne contient pas assez de donné (moins de 106). Donc j'ai modifié comme suit:

    1. J'ai recuperé la taille du fichier que l'on doit lire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    InputStream myFis = null;
    long myLength = 0;
     
    // HTTP
    URL url = new URL("http://httptestserver:80/"+theFileLocat);
    URLConnection urlconn = url.openConnection();
    myLength = urlconn.getContentLength();
    myFis = urlconn.getInputStream();
     
    // FILE
    File file = new File("Z:/webroot/"+theFileLocat);
    myLength = file.length();
    myFis = new FileInputStream(file);

    2. J'ai modifié la boucle pour attendre que l'inputStream soit remplie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (...)
    while (compteur<myLength) { // tant que TOUT le fichier n'est pas lu
     
    	// attent une trame complete
    	while(myFis.available()<106) Thread.yield();
     
    	// lit la trame
    	myRet = myFis.read(myTabRead);
     
    	//--- builds the key
    (...)
    sur ce... bon app aussi
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #26
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut
    je vois ce que tu veux dire.

    Mais dans le cas ou on arrive à la fin du fichier et qu'il n'y a plus que moins 106 caractères à lire, le thred ne va-t-il pas attendre infiniement ?

  7. #27
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    heu... si !

    Si ton fichier n'a pas une taille multiple de 106 => attente infinie.

    Donc re-modif:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (...)
    	long needed = Math.min(myLength-compteur,106);
    	while(myFis.available()<needed) Thread.yield();
    (...)
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #28
    kij
    kij est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 362
    Points : 157
    Points
    157
    Par défaut
    Il se trouve que mon fichier à une taille multiple de 106 justement, mais je voulais savoir dans le cas général, car quitte à faire autant que ce soit général au possible

    En tout cas je vois que ca fonctionne impéccable et je ne peux que te remercier énormément pour ton aide !

    Un grand merci à toi donc sans qui j'aurais certainement fini de cette facon

  9. #29
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    De rien... c'etait sympa de t'aider... bcp plus que de me replonger dans mes pb actuels d'algo, de drivers, de code java, de dotnet3.0 et autres

    PS: n'oublie pas le tag
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. VBA Excel récuperer nom de fichier via URL
    Par FrenchyBoss dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/10/2013, 16h34
  2. Récupérer différentiel de fichiers via URL
    Par shadeoner dans le forum Langage
    Réponses: 1
    Dernier message: 06/03/2008, 21h52
  3. Optimisation lecture fichier via un shell script
    Par macleod dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 31/07/2007, 12h46
  4. Réponses: 4
    Dernier message: 04/09/2005, 23h57
  5. [LG]Probleme lecture fichier file of ....
    Par John_win dans le forum Langage
    Réponses: 11
    Dernier message: 11/11/2003, 18h53

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