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

Format d'échange (XML, JSON...) Java Discussion :

Agrandir la taille d'un String [JDOM]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut Agrandir la taille d'un String
    Salut,
    Voici une méthode avec je convertir un document xml en String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public String convertirXMLString(org.jdom.Document doc){
           XMLOutputter outputter = new XMLOutputter(Format.getPrettyForma());
           String xmlString = outputter.outputString(doc);
           return xmlString;
    }
    mais si mon document est grand il me renvoie cette erreur
    Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2882)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
    at java.lang.StringBuffer.append(StringBuffer.java:224)
    at java.io.StringWriter.write(StringWriter.java:84)
    at org.jdom.output.XMLOutputter.printAttributes(XMLOutputter.java:1149)
    at org.jdom.output.XMLOutputter.printElement(XMLOutputter.java:897)
    at org.jdom.output.XMLOutputter.printContentRange(XMLOutputter.java:1007)
    at org.jdom.output.XMLOutputter.printElement(XMLOutputter.java:927)
    at org.jdom.output.XMLOutputter.output(XMLOutputter.java:375)
    at org.jdom.output.XMLOutputter.outputString(XMLOutputter.java:542)
    qui indique normalement que mon String ne pas contenir cette taille. Comment mon String peut contenir plus de données. Aide moi SVP SVP

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Non, il indique que Java n'a pas accès à suffisamment de mémoire pour transformer un document de cette taille en String.

    Le mieux serait de ne pas chercher à le faire.

    Sinon, tu peux toujours lancer Java en demandant une plus grande taille maximale pour le tas.

    (Alternative : d'abord écrire le document dans un fichier .xml, puis charger le fichier .xml dans une String. Cela évite de devoir garder le document en mémoire sous plusieurs formes, et devrait donc demander environ deux-tiers de la mémoire requise pour ta méthode actuelle.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    merci pour la réponse rapide, donc si je comprend bien je dois l’enregistrer puis le charger en String

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Salut, personnellement j'éviterai de travailler avec du xml sous forme de String.

    Dans tous les projets que j'ai vu faire ça, cela a causé des problèmes. Parce qu'à certains endroits on utilise l'arbre sous forme d'objet DOM, ensuite on le convertit en String, puis à un autre endroit on veut faire une sélection de noeuds donc on reconverti en DOM...
    Donc les String pour travailler avec du XML ce n'est pas vraiment adapté. As-tu réellement besoin de faire cette transformation?

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    oui ,cette transformation me permet d'afficher mon document sur un JTextArea car je n'est pas trouver une solution pour afficher mon document.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par InfOCynO Voir le message
    merci pour la réponse rapide, donc si je comprend bien je dois l’enregistrer puis le charger en String
    Du coup, ouais. Mais si le document est vraiment gros, c'est peut-être juste pas possible sans augmenter la mémoire ou lire depuis le disque.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Toujours le même problème ,j'ai essaie d'augmenter le tas de mon projet et sa fonction pas ,pour la deuxième solution j'ai enregistrer mon fichier dans le disque mais je n'est pas trouver une méthode pour le charger comme String et si je le charge par builder ou SAXBuilder revient au meme mon document dans la mémoire

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par InfOCynO Voir le message
    pour la deuxième solution j'ai enregistrer mon fichier dans le disque mais je n'est pas trouver une méthode pour le charger comme String
    Bah... BufferedReader sur InputStreamReader sur FileInputStream.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 104
    Par défaut
    Salut, c'est régler pour l'augmentation de tas il fallait ajouter aussi d’espace pour la JVM et redémarrer le PC. Sous netBeans faisiez un click droit de projet aller aux propriétés puis cliquer sur Run est mettez dans Arguments la taille à ajouter (exemple :-Xmx256m), dans le Worcking Directory le chemin de projet et dans VM Options la même valeur que Arguments (Est-ce que obliger la même pas sur) et redémarrer votre PC.Merci et bonne Soirée

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

Discussions similaires

  1. [Débutant] Agrandir la taille d'un string
    Par arthurdubois dans le forum MATLAB
    Réponses: 3
    Dernier message: 06/03/2012, 15h10
  2. Agrandir la taille d'une image
    Par Bouassa dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 01/03/2006, 11h22
  3. Comment agrandir la taille de la police d'un site
    Par sofos dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/09/2005, 02h11
  4. [JTABLE] taille dynamique = F°(String.length)
    Par tripop dans le forum Composants
    Réponses: 15
    Dernier message: 13/01/2005, 17h07
  5. [JDBC] Forcer la taille d'une string
    Par julio123 dans le forum JDBC
    Réponses: 4
    Dernier message: 10/06/2004, 09h43

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