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

Entrée/Sortie Java Discussion :

Ecrire et lire un fichier


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 15
    Points : 4
    Points
    4
    Par défaut Ecrire et lire un fichier
    Bonjour,

    J'ai le code suivant :

    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
     
    public class ActionTraces{
     
    	public void ecrire(String nomFic, String texte)
    	{
    		//on va chercher le chemin et le nom du fichier et on met tout ca dans un String
    		String adressedufichier = System.getProperty("Bureau") + "/"+ nomFic;
     
    		//on met try si jamais il y a une exception
    		try
    		{
    			/**
                             * BufferedWriter a besoin d un FileWriter, 
                             * les 2 vont ensemble, on donne comme argument le nom du fichier
                             * true signifie qu on ajoute dans le fichier (append), on ne marque pas par dessus 
                             
                             */
    			FileWriter fw = new FileWriter(adressedufichier, true);
     
    			// le BufferedWriter output auquel on donne comme argument le FileWriter fw cree juste au dessus
    			BufferedWriter output = new BufferedWriter(fw);
     
    			//on marque dans le fichier ou plutot dans le BufferedWriter qui sert comme un tampon(stream)
    			output.write(texte);
    			//on peut utiliser plusieurs fois methode write
     
    			output.flush();
    			//ensuite flush envoie dans le fichier, ne pas oublier cette methode pour le BufferedWriter
     
    			output.close();
    			//et on le ferme
    			System.out.println("fichier créé");
    		}
    		catch(IOException ioe){
    			System.out.print("Erreur : ");
    			ioe.printStackTrace();
    			}
     
    	}
     
    	public static void main (String[] args){
     
    		new ActionTraces().ecrire("monFichier.log", "datetime");
    	}
    }
    L'erreur est :
    Code Trace : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    java.io.FileNotFoundException: null\actionTraceTracabilite.log (Le chemin d?accès spécifié est introuvable)
    	at java.io.FileOutputStream.open(Native Method)
    	at java.io.FileOutputStream.<init>(Unknown Source)
    	at java.io.FileOutputStream.<init>(Unknown Source)
    	at java.io.FileWriter.<init>(Unknown Source)
    	at fr.dlsante.tracesejb.trace.ActionTraces.ecrire(ActionTraces.java:35)
    	at fr.dlsante.tracesejb.trace.ActionTraces.main(ActionTraces.java:60)
    Erreur :

    Je souhaite savoir où est ce que je me suis trompé ?!

    Merci d'avance !

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		String adressedufichier = System.getProperty("Bureau") + "/"+ nomFic;
    Je ne suis pas sur que la propriété "Bureau" soit reconnue par le système...
    Tu cherches à ouvrir un fichier qui est sur ton bureau windows?
    Je ne suis pas mort, j'ai du travail !

  3. #3
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Par défaut
    "Bureau" n'est pas une propriété "naturelle" (on peut l'ajouter mais bon ...)
    pour voir la liste des propriétés supportées par le poste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperties().list(System.out);
    et donc quand on appelle la propriété "bureau" on récolte "null" puisqu'elle n'est pas trouvée.
    d'où le message d'erreur :
    java.io.FileNotFoundException: null\actionTraceTracabilite.log (Le chemin d?accès spécifié est introuvable)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Merci pour votre réponse.

    Mon nouveau programme :

    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
     
    public class ActionTraces{
     
     
       public static void main(final String[] args) {
           final String chemin = "C:/JAVA/actionTraces.log";
           final File fichier =new File(chemin); 
           try {
               // Creation du fichier
               fichier .createNewFile();
               //System.out.println("Fichier ok !!");
               // creation d'un writer (un écrivain)
               final FileWriter writer = new FileWriter(fichier);
               try {        	        	   
            	 	 String newLigne=System.getProperty("line.separator");
     
    			 writer.write("datetime" + " " + new DateTime()  + newLigne);			 
     
                   //writer.write("encore et encore");
               } finally {
                   // quoiqu'il arrive, on ferme le fichier
                   writer.close();
               }
           } catch (Exception e) {
               System.out.println("Impossible de creer le fichier");
           }
    	}
    }
    Mon fichier est créé et je trouve bien la date en l'ouvrant, mon problème maintenant c'est à chaque fois que j'exécute mon programme, il crase ce qu'il y avait avant or que moi je souhaite qu'il enregistre ce que j'écrive donc à chaque fois que je l'exécute, je veux qu'il ajoute une nouvelle ligne !

    Merci d'avance

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 711
    Points : 4 797
    Points
    4 797
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 077
    Points : 7 984
    Points
    7 984
    Par défaut
    Pour ajouter quelques chose a la fin d'un fichier (append) il faut utiliser le bon constructeur avec le paramètre append valant true.

    Javadoc
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    ... J'avance !!

    Mon programme :

    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
     
    public class ActionTraces{
     
     
       public static void main(final String[] args) {
           final String chemin = "C:/JAVA/actionTraces.log";
           final File fichier =new File(chemin); 
           FileWriter writer = null;
           try {
               // creation d'un writer (un écrivain)
               writer = new FileWriter(fichier, true);
               try {
     
            		 String newLigne=System.getProperty("line.separator");
            		 String texte = "datetime" + " " + new DateTime() + " " + "Logger=" + newLigne;
    			 writer.write(texte, 0, texte.length());
     
                   //writer.write("encore et encore");
               } finally {
                   // quoiqu'il arrive, on ferme le fichier
            	   if (writer != null){
                       writer.close();
            	   }
               }
           } catch (Exception e) {
               System.out.println("Impossible de creer le fichier");
           }
    	}
    }
    Pour bien expliquer les choses, j'ai une application JEE, la première page est l'authentification, je voulais ajouter cette classe pour enregistrer dans un fichier la date et celui qui se connecte à l'application. Je ne sais pas si c'est la bonne façon de procéder mais c'est tout ce que j'ai trouvé !! ... Là, je récupère la date du système mais comment faire pour récupérer celui qui se log !!


    Le résultat que je souhaite avoir c'est :

    datetime 2015-09-18T16:51:38.560+02:00 Logger=yoanlibert
    datetime 2015-09-18T17:23:38.560+02:00 Logger=yoanlibert

    Merciiiiiii !

Discussions similaires

  1. Ecrire et lire un fichier txt simultanément
    Par sir_nebuchadnezzar dans le forum Général Python
    Réponses: 9
    Dernier message: 02/02/2012, 20h53
  2. ecrire et lire un fichier txt
    Par ka123tn dans le forum Débuter
    Réponses: 13
    Dernier message: 01/08/2009, 20h28
  3. ecrire et lire un fichier .txt
    Par sky88 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 20/04/2008, 16h28
  4. Comment creer (ecrire et lire) un fichier ?
    Par fefe69 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 06/01/2008, 16h52
  5. [CSV] Ecrire et Lire un fichier Excel depuis PHP
    Par cocaetjusdorange dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2006, 11h10

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