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

JDBC Java Discussion :

[JDBC] export de tables et ecriture fichier


Sujet :

JDBC Java

  1. #1
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut [JDBC] export de tables et ecriture fichier
    Bonjour à tous

    j'ai une appli qui extrait les données d'une base et les mets dans un fichier xml.
    elle marche bien sauf ...lorsque la base devient trop grande ...
    j'obtiens le message suivant

    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

    en fait j'ai vu un message similaire sur ce forum et le probleme venait du fait que la personne parsait le fichier xml en utilisant DOM... ce qui n'est pas mon cas car j'ecrit dans mon fichier xml apres avoir mis le contenu dans un StringBuffer puis ecrit dans le fichier avec un objet PrintStream


    est ce que vous auriez une idée ..svp ?

  2. #2
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    bonjour,

    Remplissez vous votre StringBuffer (avec toutes les données de la base) avant de l'écrire dans le fichier ?
    Si c'est le cas, le pb peut venir de là.
    Il faudrait écrire les données directement dans le flux (pour ne pas tout garder en mémoire).

    bon courage

  3. #3
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Tout d'abord merci de vous etres pencher sur mon probleme

    effectivement je n'ecris dans le flux qu'une fois avoir tout mis dans le buffer ...

    je vais donc essayer de modifier cette façon de proceder pour ecrire dans le flux

    merci encore

  4. #4
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    c'etait bien ça ...
    le traitement n'est pas terminé mais le fichier xml grossi .... ;-)

    merci encore et bonne aprés-midi

  5. #5
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    je reviens à mon probleme car finalement je ne l'ai pas resolu
    en fait je recupere les données de ma base que je met dans un StringBuffer
    puis je l'ecrit dans mon fichier grace au fileoutputstream

    voici un extrait de mon code

    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
    16
    17
     
    ....
            private StringBuffer bufferDatas = new StringBuffer();
    	private static FileOutputStream out;
    	private static PrintStream p;
     
    ...
    try{
    			out = new FileOutputStream(outputFile,true);
    			p = new PrintStream( out );
    			bufferDatas.append(EDProperties.getValue("fileHead") + "\n");
    		 bufferDatas.append(EDProperties.getValue("rootElementBegin") + "\n");
    //ici appel à une methode qui recupere les donnees et les mets dans bufferDatas
    	       result = bufferDatas.toString();
                	p.println (result);
                	p.close();		
    		}

    il n' y a bien sur pas tout le code mais le principe est le même partout dans le reste du code


    mon probleme est que dès que les tables contiennent beaucoup de données j'obtiens le message decrit dans mon premier post
    en fait je n'ai pas compris comment ecrire directement dans le flux ..

    merci d'avance

Discussions similaires

  1. Export de tables vers plusieurs fichiers excel
    Par miniquick dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/07/2007, 00h11
  2. [Tableaux] Exporter une table vers un fichier excel
    Par julwarior dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2007, 15h42
  3. [Macro]exporter une table vers un fichier.csv
    Par samca dans le forum IHM
    Réponses: 2
    Dernier message: 24/04/2007, 21h25
  4. Réponses: 3
    Dernier message: 06/01/2007, 17h44
  5. Exporter une table dans un fichier excel
    Par david71 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/09/2005, 17h09

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