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 d'un fichier a partir d'un zip, vers un tableau de bytes


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 83
    Points : 35
    Points
    35
    Par défaut lecture d'un fichier a partir d'un zip, vers un tableau de bytes
    bonjour, j'ai un probleme de lecture d'un fichier dans une archive ZIP


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    final ZipInputStream zis = new ZipInputStream(new BufferedInputStream(
            		new FileInputStream(file.getCanonicalFile())));
    ZipEntry ze;
    byte buf[];
    while (null != (ze = zis.getNextEntry())) {
         buf = new byte[(int)ze.getSize()];
         number = zis.read(buf,0,(int)ze.getSize());
         //ceci pour chaques fichiers de l'archive... 
     
    }
    avec ce bou de code je devrai recupérer pour chaque fchier de l'archive les données sous forme d'un tableau de bytes dans la variable "buf"

    le probleme : la taille totale de l'entrée "ze" étant de 13000 byte environ, je ne récupere dans "buf" que les 1400 premiers environ, le reste du tableau alloué restant vide... savez vous me dire pourquoi ?


    j'arrive donc à afficher le debut de mon fichier texte récupéré de cette manière (les premiers 10% environ)

    rapel:
    file = mon fichier zip
    ze.getSize() = 13000 (environ)
    number = 1400 (environ, a la fin de l'execution )

  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,


    C'est tout à fait normal : read() ne lira pas forcément tout le fichier pour remplir le buffer. Les tailles que tu passes sont des données maximales.

    Il peut y avoir diverses raisons pour que le read() ne remplisse pas tout le buffer, en particulier des interruptions IO au niveau du système...

    Tu dois donc faire une boucle de copie, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		int off = 0;			// Début de l'écriture
    		int len = buf.length;	// Nombre d'élément à écrire
    		int read = 0;			// Nombre d'élément lu
     
    		while ( (len>0) && (read = in.read(buf, off, len))>0 ) {
    			off += read;
    			len -= read;
    		}
    a++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 83
    Points : 35
    Points
    35
    Par défaut ^^merci beaucoup!
    en effet je te remercie enormément!

    je ne penssai pas du tout a de telles interuptions et ta solution fonctionne parfaitement

    probleme resolu a+ ! (et merci encore^^)

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

Discussions similaires

  1. Lecture d'un fichier.txt à partir d'un bean JEE
    Par yaddesign2012 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 15/10/2013, 08h45
  2. Réponses: 3
    Dernier message: 18/08/2013, 09h22
  3. Lecture d'un fichier wave à partir d'une interface graphique
    Par abdousoft dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 18/07/2011, 00h20
  4. commencer la lecture d'un fichier a partir d'un mot
    Par oliviernouhi dans le forum Langage
    Réponses: 10
    Dernier message: 15/12/2010, 13h29
  5. Réponses: 3
    Dernier message: 03/01/2008, 12h14

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