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

Java Discussion :

Problème avec XMLDecoder


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par défaut Problème avec XMLDecoder
    Hallo
    j ai vollu faire un petit exemple pour tester l enregistrement dan un fichier xml.
    je veux sauvegarder les Attribut de deux classe de maniere Herarvchie dans une Fichier XML. voila mon code:

    la premiere classe Konfuguration:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    import java.util.ArrayList;
    import java.util.List;
     
     
    public class Konfiguration {
    	private String name = "";
     
    	private List<Project> project = new ArrayList<Project>();
    	public Konfiguration() {
    		name = "(Standardkonfiguration)";
    	}
     
     
    	public void addProject(Project projectNeu) {
    		this.project.add(projectNeu);
    	}
    	/**
             * @return
             */
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
     
    	public void setProjekt(List<Project> Project){
    		this.project= Project;
    	}
     
    	public List<Project> getProject(){
    		return project;
    	}
     
     
    }
    la deuxiene classe roject

    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
    18
    19
    20
    21
    22
    23
    24
    25
    import java.util.ArrayList;
    import java.util.List;
     
    public class Project {
     
     
    	private String projectName;
     
    	public Project() {
     
    	}
     
     
     
    	public String getProjectName(){
    		return this.projectName;
    	}
     
    	public void setProjectName(String projectName){
    		this.projectName = projectName;
    	}	
     
     
     
    }
    et ma klasse class KonfigurationReader: qui ecrire dans le fichier xml

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import java.beans.XMLDecoder;
    import java.beans.XMLEncoder;
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    public class KonfigurationReader {
     
     
     
    	public static void serializeTree(Konfiguration konfiguration, String filename) throws IOException {
    	        FileOutputStream fos = new FileOutputStream(filename);
    	        BufferedOutputStream bos = new BufferedOutputStream(fos);
    	        XMLEncoder xmlEncoder = new XMLEncoder(bos);
    	        xmlEncoder.writeObject(konfiguration);
    	        xmlEncoder.close();
    	}
    }
     
    et enfin la class main:
     
    public class Main {
     
    /**
             * @param args
             */
    public static void main(String[] args) throws Exception {
     
    	Konfiguration testKonfiguration = new Konfiguration();
     
    	Project testProject= new Project();
     
    	testKonfiguration.addProject(testProject);
    	KonfigurationReader.serializeTree(testKonfiguration, "C:\\Tmp\\LPR-Konfiguration.xml");
     
    }
     
    }
    je ne sais pas ou est la problem.
    pour les deux classe j ai ajouter un constructeur par défaut (sans paramètre)
    et Les attributs de mes classe sont accessibles via des accesseurs/modifieurs

    j espere que quelquin peut m aider, j ai besoin de connetre le problem le plut tot possible

    merci becoup en avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Le code qui est fournit ne contient pas d'erreur évidente.

    En appelant les différents setters présents, les informations correspondantes seront bien enregistrées dans le fichier xml.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par défaut
    malheureusement le code ne fonctionne pas

    dans le fichier xml il ya seulement la class Konfuguration, la classe Project avec l attribut projectname n est pas sauvegarder

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    L'attribut projectName de la classe Project n'est pas rensigné (à null), il n'est donc pas sauvegardé car c'est la valeur par défaut.

  5. #5
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Par défaut
    j ai renseigne projektname mainetenant a null mai riens n a changee



    voici le nouveau code de la class Projekt:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    import java.util.ArrayList;
    import java.util.List;
     
    public class Project {
     
     
    	private String projectName = null;
     
    	public Project() {
    		projectName="";
    	}
     
     
     
    	public String getProjectName(){
    		return this.projectName;
    	}
     
    	public void setProjectName(String projectName){
    		this.projectName = projectName;
    	}	
     
     
     
    }
    je ne sais pas ou est le problem

    merci pour l aide

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    D'accord!!

    En réalité, il n'y a pas de problème.
    Le fichier XML permet de stocker les informations pour pouvoir reconstruire les objects (XMLDecode).
    Les informations inutiles ne sont donc pas inclus dans le fichier de sortie.

    Or, les valeurs des attributs sont positionnées dans le constructeur, elles ne seront donc pas stockées dans la sortie XML, car au moment de la désérialisation, il y aura un appel au constructeur, et les valeurs seront automatiquement renseignées correctement.

    Pour avoir un fichier XML plus "rempli", il ne faut pas positionner les valeurs dans le constructeur, car dans ce cas, elle ne seront jamais enregistrées car inutiles.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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