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 :

Wrapper : d'un gros fichier vers des fichiers individuels


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut Wrapper : d'un gros fichier vers des fichiers individuels
    Bonjour,

    j'ai actuellement un programme Java qui analyse tous les fichiers XML d'un répertoire donné, en utilisant SAX.

    Au départ, on m'envoie les fichiers XML en un seul gros fichier, que je dois donc diviser en plusieurs fichiers (une définition Doctype indique le début d'un nouveau fichier XML) pour pouvoir exécuter mon programme.
    J'aimerais pouvoir éviter d'avoir à diviser le gros fichier. Sachant que SAX prend un File ou un InputStream, est-ce qu'il y a une bonne méthode pour simuler des fichiers individuels à partir d'un gros fichier ?

    Merci d'avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 885
    Par défaut
    Salut,

    tu peux lire les bouts de ton fichier d'un côté, les mettre dans un/des tampons(s), puis passer par un ByteArrayInputStream ou StringBufferInputStream, (bon quelquechose qui va bien et qui descend de InputStream).
    De cette manière SAX ne lira que tes tampons, tampons contenant justement les fichiers constituants le gros.

    Après, il y a sûrement plus simple / mieux pensé, mais bon, bonne nuit

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 23
    Par défaut
    Salut,

    merci pour ta réponse.
    Je suis arrivé à quelque chose qui semble satisfaisant avec un StringBuilder que je remplis au fur et à mesure jusqu'à ce qu'il contienne un fichier XML entier, et dont je récupère ensuite les bytes que je passe à un ByteArrayInputStream.

    Par contre je pensais au départ lire le gros fichier 1000 caractères par 1000 caractères (par exemple), mais ça semble trop compliqué de détecter la fin d'un fichier de cette manière, donc j'ai fini par le lire ligne par ligne (étant donné que le DOCTYPE qui permet de délimiter deux fichiers tient exactement sur une ligne).

    Mais si quelqu'un a une méthode qui permet de lire plus d'une ligne à la fois, ça peut être intéressant.

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

Discussions similaires

  1. Redirection de flux standard vers des fichiers
    Par raoulchatigre dans le forum C++
    Réponses: 8
    Dernier message: 29/01/2008, 11h27
  2. [DEV] Envoyer des fichiers vers (menu contextuel)
    Par AnTaReS7364 dans le forum Apple
    Réponses: 7
    Dernier message: 16/09/2007, 17h53
  3. Réponses: 14
    Dernier message: 14/03/2007, 19h32
  4. Réponses: 2
    Dernier message: 25/06/2006, 20h06
  5. |VB6] Comment Lister les liens vers des fichiers d'une page web
    Par Mayti4 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 18/01/2005, 18h17

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