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 :

NullPointerException sur un tableau de String


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut NullPointerException sur un tableau de String
    Bonjour,
    lors de la déclaration de mon tableau de String, je me retrouve avec un NullPointerException. J'ai beau chercher, je ne trouve vraiment pas.

    J'ai bien vérifié que les éléments que je passais en paramètre n'étaient pas nuls à l'aide de System.out.println(), et ce n'est pas le cas.

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String [] elements = prop.getProperty(nomFichierSansExtension[0]).split(";");
    ]

    ici, nomFichierSansExtension est un tableau de String.
    Je veux récupérer les valeurs contenues dans mon fichier properties et les mettre dans un tableau de String (elements) en utilisant la méthode split(), car les valeurs sont séparées par des ;

    Merci de votre aide.

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    A vue de nez si tu dis que nomFichierSansExtension[0] n'est pas null, c'est prop qui vaut null.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Ou bien nomFichierSansExtension[0] n'est pas une propriété de prop et la c'est le split qui lance l'exception.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    Pourtant, lorsque je fais :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(nomFichierSansExtension[0]);
    Je retrouve bien la valeur que j'attends (le nom du fichier sans l'extension)

    et lorsque je fais
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(prop.getProperty(nomFichierSansExtension[0]));
    J'obtiens bien la ligne corespondante dans mon fichier.properties.

    Je vous poste le code complet (je l'ai réduit dans un petit main à l'arrache, pour le sortir du projet) .

    Code java : 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
    41
     
    static Properties prop = new Properties();
    private static void chargerProp(String nomFichier) {
    	try {
    		FileInputStream in = new FileInputStream(nomFichier);
    		prop.load(in);
    		in.close();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
     
     public static void main (String [ ] args)
      {
            String[] nomFichierSansExtension;
    	String valeur;
    	ArrayList<Fichier> al = new ArrayList<Fichier>();
    	  String[] tab = {"fichier.cfg","fichier2.cfg","fichier1.properties","fichier2.properties" };
    	  Hashtable<String, String> ht = new Hashtable<String, String>();
    		for (int i = 0; i < tab.length; i++) {
     
    			// on obtient fichier par exemple
    			nomFichierSansExtension = tab[i].split("\\.");
    			// lecture des éléments à chercher dans un fichier
    			chargerProp("donnees.properties");
     
     
    			System.out.println(nomFichierSansExtension[0]);
     
    	System.out.println(prop.getProperty(nomFichierSansExtension[0]));
     
    	String [] elements = prop.getProperty(nomFichierSansExtension[0]).split(";");
     
    		for (String str : elements) {
    			chargerProp(tab[i]);
    			valeur = prop.getProperty(str);
    			ht.put(str, valeur);
    		}
    		al.add(new Fichier(tab[i], ht));
    	}
    }

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 46
    Par défaut
    Que te renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(prop.getProperty(nomFichierSansExtension[0]));
    ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Par défaut
    une chaine de caractères contenant des mots séparés par des ;
    Typiquement : serveur1.was;serveur2.was;serveur3.was

    Cela correspond aux clés d'un autre fichier de propriété que je lis après.
    C'est pourquoi je souhaite couper cette chaine à l'aide de split(), pour disposer de chaque élément dans un tableau de String (mon tableau elements[] ).

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Février 2010
    Messages
    766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 766
    Par défaut
    Sinon c'est amusant de charger des properties comme ça
    Tu ne connais pas ResourceBundle.getBundle("myProperties"); ?

    Mais bon si ton fichier n'existe pas (java.io.FileNotFoundException), vu que tu catch que IOException et que tu n'en fais rien, tu continues et ça fait un null pointeur sur ta ligne de split.

    Je ne sais pas trop ce que tu veux faire, mais c'est bien lourd comme code.
    Un properties ça se lit pas avec un FileInputStream.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/11/2012, 23h40
  2. Réponses: 6
    Dernier message: 18/11/2012, 15h01
  3. problème sur tableau de string
    Par boboss123 dans le forum C
    Réponses: 7
    Dernier message: 13/02/2012, 11h41
  4. [Tableau] NullPointerException sur les tableaux
    Par zsoh dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 18/01/2010, 17h42
  5. Suppression et décalage sur un tableau de String
    Par allstar dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 09/05/2008, 16h53

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