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

Langage Java Discussion :

Garder en mémoire le résultat d'un parse de fichier


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Garder en mémoire le résultat d'un parse de fichier
    Bonjour,

    J'ai une méthode qui parse un fichier xml et qui retourne une liste.
    Le problème c'est qu'à chaque fois que je fais appel à cette méthode le fichier xml est de nouveau parsé.
    Je voudrais savoir comment faire pour parser le xml une fois pour toute (càd ne pas prendre compte des modifications du xml à chaud)

    Merci de votre aide

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Points : 267
    Points
    267
    Par défaut
    Salut,

    Un exemple serait d'avoir un objet liste dans la classe qui parse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public class Parser {
        private List resultat = null;
     
        public List parser (File xml) {
            if (resultat == null) {
                resultat = new ArrayList();
     
                // Parser le fichier XML.
            }
            return resultat;
        }
    }
    a+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre réponse,

    en fait j'ai toujours le même problème.
    je pense que le problème vient plutôt de la façon avec laquelle j'appelle j'initialise l'objet de cette classe.
    voici comment je fais appel à cette classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Main {
    	public static void main(String[] args) {
     
    	Parser parser = new Parser();
    	List list = parser.getParcoursName();
     
     
    		for (int i = 0; i <list.size(); i++) {
    			System.out.println("valeur "+i+ " : "+list.get(i).toString());
     
    		}
           }
    }
    Donc je pense que le new force l'initialisation de la classe et donc la liste redevient null.

    Merci pour votre aide.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Points : 267
    Points
    267
    Par défaut
    Salut,

    Je ne sais pas si j'ai tres bien compris mais apparement tu voudrais n'avoir qu'une seule instance de ton Parser.
    Si c'est bien ca tu peux utiliser le pattern Singleton du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Parser {
        private static final Parser instance = new Parser ();
     
        public static Parser getInstance () {
            return instance;
        } // getInstance ()
     
        private Parser () {}
     
        // Méthodes et attributs...
    }
    a+

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 167
    Points : 220
    Points
    220
    Par défaut
    Sans aller jusqu'au singleton il suffit de mettre la liste en static pour qu'elle ne soit plus réinitialisée à chaque nouvelle instanciation du parser.

Discussions similaires

  1. Garder en mémoire des résultats sans BDD
    Par MrVentouse dans le forum Flex
    Réponses: 16
    Dernier message: 25/04/2010, 11h18
  2. Garder en mémoire les valeurs entrées par l'utilisateur
    Par dessinateurttuyen dans le forum Langage
    Réponses: 11
    Dernier message: 17/08/2006, 09h15
  3. Garder en mémoire les identifiants FTP
    Par .:dev:. dans le forum Langage
    Réponses: 6
    Dernier message: 12/08/2006, 14h41
  4. garder en mémoire une dll
    Par mnaulet dans le forum C++
    Réponses: 2
    Dernier message: 09/08/2006, 12h36
  5. Réponses: 7
    Dernier message: 07/07/2006, 12h23

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