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

Collection et Stream Java Discussion :

Remplir un Object[][] avec un fichier properties


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut Remplir un Object[][] avec un fichier properties
    Bonjour,
    Je voudrais savoir comment je peux construire un tabelau Object[][] à partir des éléments d'un fichier properties.
    ma variable aurait au final cette tête là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    new Object[][] {
        new Object[] { "mavaleur1" },
        new Object[] { "mavaleur2"},
        ...
      }
    merci de votre aide

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    je suis pas sûr d'avoir compris mais ...

    tu peux parcourir les properties de ton fichier et les mettre dans ton tableau d'objet.

    Quel est le pb exactement ?

    (quelle est l'utilité aussi ?)
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  3. #3
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Ben aucun intérêt tu as la classe Properties faite pour ça.

    Tu fais Properties.load(InputStream) et ça remplis une Map avec tes valeurs et tes clés...

  4. #4
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Le probleme c'est que je ne connais pas la quantité exacte de propriéte a mettre dans mon tableau d'objet, donc je ne connais pas non plus la taille de mon Object[][].
    Je voudrais savoir comment faire ma boucle sur le propriétés (issues de mon fichier propertie) pour remplir mon object de facon dynamique (l'exemple que je montre dans mon premier message met les valeurs en dur) .

  5. #5
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Salut,

    oui mais la question que l'on se pose est pourquoi un "Object[][]" ?
    Tu es contraint de l'utilisé ?
    cf post de thibault
    "vaste programme"

  6. #6
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par n8ken
    Le probleme c'est que je ne connais pas la quantité exacte de propriéte a mettre dans mon tableau d'objet, donc je ne connais pas non plus la taille de mon Object[][].
    Je voudrais savoir comment faire ma boucle sur le propriétés (issues de mon fichier propertie) pour remplir mon object de facon dynamique (l'exemple que je montre dans mon premier message met les valeurs en dur) .
    Si tu tiens vraiment à mettre tout cela dans Objet[][], il n'y pas de miracles, il faut que tu fasses un premier parcours pour savoir combien de lignes il y a et un deuxième pour stocker dans le tableau.

    Tu élimines déja un passage en stockant le tout dans une collection et non un tableau.

  7. #7
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Ok, merci, c'est a peu pret ce que je pensais mais pourquoi dis-tu que cela elimine un parcours et comment le mettre dans une collection (Properties.load?)

    C'est vrai que je suis obligé d'utiliser Object[][]

  8. #8
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par n8ken
    Ok, merci, c'est a peu pret ce que je pensais mais pourquoi dis-tu que cela elimine un parcours et comment le mettre dans une collection (Properties.load?)

    C'est vrai que je suis obligé d'utiliser Object[][]
    Si tu es obligé de le mettre dans un tableau d'objets, alors je pense pas que tu vas échapper le double parcours, je parlais d'une collection telle qu'une ArrayList que tu n'as pas besoin d'initiailiser avec la taille.

  9. #9
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Est ce que je pourrais avoir un exemple de code car la je suis un peu perdu pour construire ce foutu tableau.
    Je recupere bien mes valeurs de fichier config mais n'arrive pas a le mettre comme tableau [][] d'objet

  10. #10
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    ou tu utilises une arrayList pour construire ton Object[][]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pour chaque propriété
          ajout dans l'arrayList
     
    Object[][] galere = new Object[1][arrayList.size()]; // c'est ça que tu veux ??? 
    pour chaque élément de l'arrayList
        galere[0][i] = arrayList(i);
    mais bon c'est crade et surement inutile. Es tu sûr de vouloir faire ça ?
    et dans ce cas pourquoi un Object[][] et pas un Object[] tout cours ?

    A moins que tu veuillles Object[nomPropriété][ValeurPropriété] ce qui paraitrait plus logique ... mais beaucoup moins bien que la réponde de Thibaut ...
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  11. #11
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Merci,
    je vais essayer cela
    je suis desole , ca a l'air idiot mais j'ai besoin de transformer en object[][], j'utilise un framework qui en a besoin.

  12. #12
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Je ne suis pas loin mais je n'arrive pas a tranforme mes values en ArrayList voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FileInputStream in = new FileInputStream("./testCase.properties");
    	        prop.load(in);
    	         in.close();
    	         //mise en place de l'objet
    	         ArrayList list = (ArrayList) prop.values();
    	         Object[][] properie = new Object[1][list.size()];
    	        for (int i=0; i < list.size();i++){
    	        	properie[0][i] = (Object) list.get(i);
    	        }
    et l'erreur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "main" java.lang.ClassCastException: java.util.Collections$SynchronizedCollection
    sur la ligne ArrayList list = (ArrayList) prop.values();
    prop.values est une Collection de string.
    Voyez vous ma faute?

  13. #13
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Tu ne récupéres pas une ArrayList, mais une Collections.SynchronizedCollection.

    Et secundo pourquoi tu es réfractaire à l'utilisation d'une Map ça te simplifierais la vie ???? Tu ne crois pas ?

  14. #14
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Je ne suis pas refractaire, utilisant un fichier properties comment faire remplir ma map?

  15. #15
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par n8ken
    Je ne suis pas refractaire, utilisant un fichier properties comment faire remplir ma map?
    Il faut que tu utilises la classe Properties qui est fait exactement pour ca :

    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
    Properties proprietes = new Properties();
     
    try {
        //On ouvre le fichier properties et on le stocke en mémoire
        FileInputStream in = new FileInputStream("Ton fichier properties");
        proprietes.load(in);
    } catch (FileNotFoundException e){
        e.printStackTrace();
    } catch (IOException e){
        e.printStackTrace();
     
    } finally {
        try {
            in.close();
        } catch(IOException e){
            e.printStackTrace();
        }
    }
    Ensuite, pour accéder aux données, tu peut faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    proprietes.getProperty("Nom de la propriété");

  16. #16
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Ca je sais faire,
    simplement ce que je veux (étant que je ne connais pas mes clés) c'est remplir un tableau d'objet[][] donc je dois parcourir l'ensemble de mes valeurs pour le remplissage. c'est ca que je n'arrive pas a faire.
    J'ai bien mes valeurs avec properties.values() mais je n'arrive pas à lister ces valeurs (j'eesaye de le transformer en ArrayList sabs succès)

  17. #17
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Tu peut faire quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Iterator iterator = proprietes.values().iterator();
    while(iterator.hasNext()){
        iterator.next(); //Tu fais ce que tu veut de cette valeur
    }
    Sinon, si tu veut pas passer par properties, tu lis le fichier ligne par ligne et tu splittes chaque ligne au signe = et tu stockes chaque moitié de ligne au bon endroit dans le tableau.

  18. #18
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Merci beaucoup, je récapitule
    J'ai les valeurs et je veux obtenir un object[][] dynamiquement de façon à avoir ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //ce que je veux faire de facon non dynamique
    new Object[][] {
        new Object[] { "a.tc" },
        new Object[] { "b.tc"},
     
      }
    je fais ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Properties prop = new Properties();
    		FileInputStream in = null;
    		try {
    			in = new FileInputStream("./testCase.properties");
    			prop.load(in);
    			in.close();
    			// mise en place de l'objet
    			Object[][] propertie = new Object[1][prop.size()];
    			propertie[0] = prop.values().toArray();
    	...
    Est ce que cela revient à la même chose?

  19. #19
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Mais pourquoi passer par un tableau, regarde la réponse de wichtounet je pense que c'est la solution la plus adéquate.

  20. #20
    Membre du Club
    Inscrit en
    Avril 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 139
    Points : 40
    Points
    40
    Par défaut
    Ok je fais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                    Object[][] propertie = new Object[prop.size()][1];
    		int j = 0;
    		Iterator iterator = prop.values().iterator();
    		while(iterator.hasNext()){
    			Object element = (Object) iterator.next();
    			propertie[j][0]=element;
    		    j++;
    		}
    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Jtable]Remplir un OBject[][] avec une ArrayList
    Par ArN0.VdB dans le forum Composants
    Réponses: 27
    Dernier message: 25/04/2007, 10h43
  2. [SQL] Comment un remplir une table avec un fichier xls
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/10/2006, 12h33
  3. [C#] Remplire un comboBox avec un fichier XML
    Par Roach dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/09/2005, 20h45
  4. Réponses: 3
    Dernier message: 19/01/2005, 15h50
  5. Réponses: 2
    Dernier message: 26/07/2004, 13h34

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