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 :

[PROPERTIES] Bug dans java.util.Properties ?


Sujet :

Collection et Stream Java

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut [PROPERTIES] Bug dans java.util.Properties ?
    Bonjour,

    En faisant des tests pour comprendre comment fonctionne les "properties", je suis tombé sur quelque chose de bizarre.
    D'après la doc ( http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html ) les lignes dont le 1er caractère n'étant pas un espace est "#" ou "!" est ignorés
    or j'obtiens les résultats affiché ci dessous:
    pour chaque exemple j'ai à chaque fois le texte tel qu'il est présent dans le fichier et en dessous j'ai la liste des propriétés sous la forme "nom de la propriétés = valeur"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # un commentaire
      # ligne 1
    a
     #ligne 2
    # ligne 3
    nom : valeur
    nom\ 2 = valeur 2
     
     
        * a =
        * nom = valeur
        * nom 2 = valeur 2
        * #ligne = 2
        * # = ligne 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # un commentaire
      # ligne 1
    a
     # ligne 2
    # ligne 3
    nom : valeur
    nom\ 2 = valeur 2
     
     
        * a =
        * nom = valeur
        * nom 2 = valeur 2
        * # = ligne 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # un commentaire
      # ligne 1
    a
    # ligne 2
    # ligne 3
    nom : valeur
    nom\ 2 = valeur 2
     
     
        * a =
        * nom = valeur
        * nom 2 = valeur 2
        * # = ligne 1
    qu'en pensez-vous ?

    je précise que j'utilise la version "1.3.1-b24"

  2. #2
    Nouveau membre du Club
    Inscrit en
    Février 2004
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Pour que le dièse soit considéré comme une propriété il doit être échapé c-à-d :

    \# = valeur

    Sinon tout ce qui suit le #est un commentaire.

    maintenant je comprend pas pourquoi il te donne ce résultat

    :

  3. #3
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Je pense que ca doit etre parce que les lignes ne commencent pas par # mais par un espace...

    En tout cas c'est la logique qui semble respectee

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par bulbo
    Je pense que ca doit etre parce que les lignes ne commencent pas par # mais par un espace...

    En tout cas c'est la logique qui semble respectee

    Bulbo
    d'aprés mes tests quand je mets plusieurs lignes avec des espaces et une dièse toutes ces lignes sont supprimées comme des commentaires sauf la dernière ligne

    est ce que quelqu'un qui a java 1.4 pourrais essayer si ca fait la même chose ?

  5. #5
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Elles ne sont pas supprimees, seule la derniere valeur pour # est stockee..

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     # ligne 1
     
     # ligne 2
     
     # ligne 3
    # est considere comme une cle a cause de l'espace avant (?? devrait pas mais bon ..)

    La propriete # prends d'abord la valeur "ligne 1", puis "ligne 2" et enfin "ligne 3", comme les proprietes sont stockees dans une Hashtable il ne peut en rester qu'une (comme dirait l'autre)

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par bulbo
    comme les proprietes sont stockees dans une Hashtable il ne peut en rester qu'une (comme dirait l'autre)
    un peu c** le mathix !! je savais très bien cela et pourtant j'en ai conclus que seul le dernier n'est pas prix en compte alors que ce n'est pas trop ca en fait

    merci bulbo pour tes tests et pour ta conclusion

    ca veut dire qu'il y a une erreur dans la doc. d'un coté ca m'arrange puisque je doit recréer la roue et je dois refaire une classe fichier -> properties (personne aurait le code source de la classe Properties par hazard )

    je fais encore 2-3 tests et ce sujet sera résolu dans quelques minutes

  7. #7
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    finallement voila la conclusion :
    les commentaires dans les fichiers "properties" sont les lignes dont le 1er caractère est ! ou #

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/11/2014, 11h23
  2. Réponses: 4
    Dernier message: 24/09/2014, 17h27
  3. java.utils.Properties avec Expression Language
    Par pilate dans le forum Collection et Stream
    Réponses: 16
    Dernier message: 24/01/2010, 21h48
  4. Bug bizarre dans java.util.regexp
    Par LodeRunner64 dans le forum Collection et Stream
    Réponses: 0
    Dernier message: 20/05/2009, 16h05

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