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

avec Java Discussion :

Problème de Thread


Sujet :

avec Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Par défaut Problème de Thread
    Bonjour,

    j'ai un petit module tout simple qui est sensé analyser, à travers Sax, un fichier Xml présent dans un fichier Zip.

    Le module fonctionne mais j'ai une erreur qui est générée à chaque traitement bien que le fichier Xml soit analysé et traité par le parseur.

    Cela se passe certainement au niveau des Thread mais je ne trouve pas la solution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void unzipMyFound(ZipInputStream fileZip) throws IOException, ParserConfigurationException, SAXException{
    		while ((fileZip.getNextEntry()) != null) {
    			SAXParserFactory fabrique = SAXParserFactory.newInstance();
    			SAXParser parseur = fabrique.newSAXParser();
    			DefaultHandler gestionnaire = new MyFoundHandler();	
    			parseur.parse(fileZip, gestionnaire);
     
    		}
    		fileZip.close();
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" java.io.IOException: Stream closed
    	at java.util.zip.ZipInputStream.ensureOpen(Unknown Source)
    	at java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
    ...
    PS : bien évidement si je ne lance pas le parseur (parseur.parse(fileZip, gestionnaire); l'exception n'est pas levée. Cela pour dire que le problème se situe bien à ce niveau là.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 265
    Par défaut
    Finalement j'ai trouvé mon erreur (énorme). Je travaillais directement sur le flux.
    Cette version va un peu mieux.
    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
    	private void unzipMyFound(String mySendName) throws IOException,
    			ParserConfigurationException, SAXException {
    		ZipFile fileZip = new ZipFile(mySendName);		
    		Enumeration<? extends ZipEntry> entries = fileZip.entries();
    		while (entries.hasMoreElements()) {
    			ZipEntry entry = entries.nextElement();
    			ZipEntry zipEntry = fileZip.getEntry(entry.getName());
    			InputStream inputStream = fileZip.getInputStream(zipEntry);
    			SAXParserFactory fabrique = SAXParserFactory.newInstance();
    			SAXParser parseur = fabrique.newSAXParser();
    			DefaultHandler gestionnaire = new MyFoundHandler();
    			parseur.parse(inputStream, gestionnaire);
    		}
    		fileZip.close();
    	}

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

Discussions similaires

  1. Problème de thread : Plus de ressources système
    Par OliverSleep dans le forum C++Builder
    Réponses: 17
    Dernier message: 07/02/2006, 15h35
  2. [VB.NET] Problème de Thread
    Par Sadneth dans le forum ASP.NET
    Réponses: 26
    Dernier message: 31/01/2006, 10h12
  3. Problème synchronisation threads
    Par Linio dans le forum Concurrence et multi-thread
    Réponses: 19
    Dernier message: 11/01/2006, 16h57
  4. [MFC] Problème de Threads + Timers
    Par Invité dans le forum MFC
    Réponses: 8
    Dernier message: 30/11/2005, 10h51
  5. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 22h22

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