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

Servlets/JSP Java Discussion :

problème de lecture d'un fichier .properties dans une classe java et une page JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut problème de lecture d'un fichier .properties dans une classe java et une page JSP
    Bonjour,

    j'ai besoin d'enregistrer quelque valeur dans un fichier .properties, c'est valeur sont mis a jour dans une classe java, je veux récupérer ces valeurs dans une page jsp mais les valeurs retourné dans le fichier JSP sont tourjours nulle.

    Voici le code java dans le quel je fait la mise à jour des valeurs du fichier .properties
    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
    41
    42
    43
    44
    45
    46
    47
     
     Properties props = new Properties();
    			InputStream input = getClass().getClassLoader().getResourceAsStream("lastModif.properties");
     
    			try
    			 { 
     
    				props.load(input);
    				props.setProperty(USER_ID, "valeur");
    				System.out.println("ecriture fait");
    				System.out.println("la valeur dans le fichier est :"+props.getProperty(USER_ID)); // je vérifie que la valeur est ecrite
     
     
    			}
        	catch(Exception e)
        	{
        		System.out.println(e.toString());
        		System.out.println(" erreur d'ecriture dans le fichier properties");
        	}
        	finally{
        		input.close();
        		System.out.println("fermeture du fichier fait");
        	}
        	try
        	{
        		FileOutputStream flt = new FileOutputStream("lastModif.properties");
        		 OutputStreamWriter ow = new OutputStreamWriter(flt);
    		System.out.println(flt.getFD());
     
     
        	props.store(ow, "");
    		ow.close();
    		flt.close();
    		System.out.println("sauvegarde reussi");
    		}
    		 catch (Exception e){System.out.println(e.toString());System.out.println("erreur de sauvegarde");
    			 }
    		}	
    	catch (Exception e){
    		System.out.println("ID user incorrect");
    	}
    	Properties props = new Properties();
     
    	 InputStream input = getClass().getClassLoader().getResourceAsStream("lastModif.properties");
    	 props.load(input);
    	 System.out.println("la valeur de user Id apres la fermeture du fichier"+props.getProperty(USER_ID));
    // lorsque je réouvre le fichier je trouve pas la valeur que j'ai mis plus haut
    dans le code jsp

    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
    Properties props = new Properties();
    InputStream input = getClass().getClassLoader().getResourceAsStream("../classes/lastModif.properties");
    if (input != null)
    {
    try{
    	props.load(input);
    	 userID= props.getProperty(NotepadPortlet.USER_ID,"");
    	  System.out.println("lecture fait");
     
    }
    catch(Exception e)
    {
    	System.out.println(" erreur de lecteur du fichier properties");
    }
    finally{
    	input.close();
    }
    }
    else System.out.println("input null dans le fichier jsp");
    mais toujours User_Id contient la valeur par défaut ""

    j'ai essayer aussi de réouvrir le fichier properties juste aprés la fermeture mais les valeurs sont null ce qui veut dire que le sauvegarde n'a pas eu lieu.

    est ce que input.close() ne suffit pas pour sauvegarder le flux?

    et est ce que props.setproperties(,) ecrit réelement dans le fichier properties ou dans le flux?

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Points : 73
    Points
    73
    Par défaut
    Bonjour
    c'est résolu l'erreur était dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileOutputStream flt = new FileOutputStream("lastModif.properties");
        		 OutputStreamWriter ow = new OutputStreamWriter(flt);
    il fallut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String propertiesFile = "lastModif.properties";
    				File file = new File(this.getClass().getClassLoader().getResource(propertiesFile).getFile());
    		    	FileOutputStream flt = new FileOutputStream(file);
    		    	props.store(flt, "");
    			   	flt.close();
    apparemment FileOutputStream ne tente pas de chercher le fichier et s'il n'existe pas elle le crée ( peut etre c'est pour cela y avait pas d'exception)

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 01/03/2015, 13h16
  2. Réponses: 17
    Dernier message: 18/08/2014, 15h17
  3. Réponses: 5
    Dernier message: 06/06/2013, 14h58
  4. Réponses: 6
    Dernier message: 30/03/2009, 18h13
  5. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16

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