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 aléatoire d'un fichier distant.


Sujet :

Entrée/Sortie Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut Lecture aléatoire d'un fichier distant.
    Bonjour, avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	URL url = new URL("http://127.0.0.1/dir/vid4.ts");
    			InputStream in = url.openStream();
    			byte[] buffer;
    			int read;
    			long i=0;;
     
    			do {
    				buffer = new byte[188];
    				read = in.read(buffer);
    				i++;
     
    			}while(read>0);
    			System.out.println(i);
    J'obtiens des valeurs finale de i aléatoires, toujours plus ou moins dans la meme zone (entre 79 000 et 80 100), mais quand même différentes.
    Comment se fait ce ?

  2. #2
    Membre expérimenté

    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2009
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 553
    Points : 1 672
    Points
    1 672
    Par défaut
    La méthode read() que tu utilises ne garantit en rien que le buffer sera rempli à chaque lecture. C'est d'ailleurs pour cela que cette méthode te retourne le nombre d'octets effectivement lus... Donc le nombre d'itérations nécessaire pour lire un fichier peut très bien varier d'une fois sur l'autre.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    ton test est mauvais, un valeur read de 0 ne veux pas dire fin de flux, ca veux dire "rien de lu cette fois-ci". La fin de flux se marque par une valeur de read=-1.. Comme t'es en réseau, il faut le temps pour que les données arrivent. De plus, meme avec un bon test, ta valeur de i différera suivant le nombre d'itération nécessaire pour lire le fichier, puisque l'entièreté du buffer n'est pas nécessairement lue à chaque fois.

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    570
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 570
    Points : 340
    Points
    340
    Par défaut
    D'accord, merci bien.

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

Discussions similaires

  1. [c#]Lecture d'un fichier distant
    Par flzox dans le forum C#
    Réponses: 5
    Dernier message: 10/12/2009, 17h50
  2. Accès en lecture à un fichier distant
    Par le_vive dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 14/06/2007, 14h12
  3. pb de lecture d'un fichier distant
    Par oussama127 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 26/02/2007, 17h25
  4. Lecture d'un fichier distant ?
    Par gui38 dans le forum Langage
    Réponses: 4
    Dernier message: 01/12/2006, 14h35
  5. Lecture d'un fichier distant
    Par youdev dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 24/08/2006, 14h50

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