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

avec Java Discussion :

ecrire dans un nouveau a chaque fois


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Points : 102
    Points
    102
    Par défaut ecrire dans un nouveau a chaque fois
    Bonjour a tous.

    Voila, je dois ecrire certain resultat de fonction dans un fichier et j utilise pour l instant ceci

    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 Write_file {
     
    	static String  writeString2Path (String texteFlux){
    		String path = new String("path/.../.../log1.log");
    		FileWriter writer = null;											//Creation d'un nouveau fichier modifie
    		String texte = texteFlux;
    		try{
     
    			writer = new FileWriter(path, false);
    			writer.write(texte,0,texte.length());
    		}catch(IOException ex){
    			ex.printStackTrace();
    		}finally{
    			if(writer != null){
    				try {
    					writer.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
     
    		return path;
    	}
     
    }
    Cependant j appelle cette methode plusieur fois, afin de concatener mes resultats.
    Et je voudrais , qu a chaque fois que je lance mon programe une nouvelle fois, il me cree un nouveau fichier (log1,log2,...par exemple)
    Y a t il une astuce, une classe?
    Sinon comment puis je m y prendre?

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    tu a la class Logger mais il faut regardé pour que ton fichier est la forme que tu veut.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    ok, j ai regarde cette class Logger, mais je ne comprend pas tres bien ni son utilite ni comment l utilise correctement.

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Vous pouvez également procéder ainsi :

    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
    public class Write_file {
     
            public static int numVersion = 1;
    	static String  writeString2Path (String texteFlux){
    		String path = new String("path/.../.../log"+numVersion+".log");
     
    		numVersion ++;
     
    		FileWriter writer = null;											//Creation d'un nouveau fichier modifie
    		String texte = texteFlux;
    		try{
     
    			writer = new FileWriter(path, false);
    			writer.write(texte,0,texte.length());
    		}catch(IOException ex){
    			ex.printStackTrace();
    		}finally{
    			if(writer != null){
    				try {
    					writer.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
     
    		return path;
    	}
     
    }

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    ok merci jc, je pensais aussi me rabattre sur ce genre de choses.
    Mais si j ai bien compris, a chaque methode qui appelle "writefile", on ecrit dans un nouveau fichier, or c est a chaque lancement du dit programe que j ai besoin qu il change de fichier.
    Je crois aue je vais me rabattre sur une boucle tout simple.
    Me reste plus qu a trouver comment verifier la presence ou non, d un fichier dans un repertoire.
    Si quelqu un a une idee ^^

  6. #6
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Vous pouvez alors utiliser un timestamp ...
    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
    public class Write_file {
     
            public static String path = null;
    	static String  writeString2Path (String texteFlux){
    		if (null == path) {
    			Date date = new Date();
    			path = new String("path/.../.../log"+date.getTime()+".log");
    		}
     
    		FileWriter writer = null;											//Creation d'un nouveau fichier modifie
    		String texte = texteFlux;
    		try{
     
    			writer = new FileWriter(path, false);
    			writer.write(texte,0,texte.length());
    		}catch(IOException ex){
    			ex.printStackTrace();
    		}finally{
    			if(writer != null){
    				try {
    					writer.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
     
    		return path;
    	}
     
    }

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    bon les test ne sont pas concluant, simplement parce que le date.getTime defini a la milliseconde pres donc, entre chaque appel de la methode (plusieur fois dans le programme ~15fois) il me sortira 15 fichiers differents :/

    De plus les date. me donne certaine options barrees, je ne comprend pas pourquoi

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    J'ai fait une erreur dans mon code ... je viens de la corriger

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    j'ai un truc pas top sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            int i = 1;
            File f = new File("log"+i+".log");
            while(f.exists()){
                f = new File("log"+i+".log");
                i++;
            }
            f.createNewFile();
            System.out.println(f.getName());
    sinon tu peut aussi ajouter un fichier qui garde le dernier index utiliser

    que tu vas lire en 1er et que tu modifie.

    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
            int num = 0;
            File indexFile = new File("index");
            if (indexFile.exists()) {
                Scanner sc = new Scanner(indexFile);
     
                if (sc.hasNextInt()) {
                    num = sc.nextInt();
                }
            }
            num++;
            File log = new File("log" + num + ".log");
            log.createNewFile();
            PrintWriter pw = new PrintWriter(indexFile);
            pw.print(num);
            pw.flush();

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2009
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Rebonjour messierus et encore merci de votre aide.

    J ai reflechi et retravaille mon code, et finallement j ai opte d une part pour un texteflux, qui concatene au fur et a mesure les resultats de mes methodes, pour a la fin le faire passer dans une methode d ecriture.
    Ici je dis merci a rolfone, j ai pique un peu de ton code

    voila ce que ca donne

    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
     
    public static void writeString2Path (String texteFlux) throws IOException{
    		 int i = 1;
    	        File f = new File("/home/gc98/log"+i+".log");
    	        while(f.exists()){
    	            f = new File("/home/gc98/log"+i+".log");
    	            i++;
    	        }
    	        f.createNewFile();
     
     
    			FileWriter writer = null;											//Creation d'un nouveau fichier modifie
    			String texte = texteFlux;
    			try{
     
    				writer = new FileWriter(f, true);
    				writer.write(texte,0,texte.length());
    			}catch(IOException ex){
    				ex.printStackTrace();
    			}finally{
    				if(writer != null){
    					try {
    						writer.close();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    				}
    			}
     
     
    		}
    Voila, merci encore et j espere que cela servira a d autre plus tard

    Delta07

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

Discussions similaires

  1. [XL-2007] Copier plusieurs fichiers Excel dans un nouvel onglet à chaque fois
    Par OptionExplicitSu dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2012, 17h48
  2. [Toutes versions] Nouveau formulaire chaque fois que procédure est modifiée?
    Par Souriane dans le forum Access
    Réponses: 8
    Dernier message: 03/07/2011, 16h24
  3. Réponses: 1
    Dernier message: 11/02/2011, 11h44
  4. [XL-2007] classeur fermé => ecrire dans un nouveau classeur
    Par re dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/08/2009, 09h07
  5. FileWriter ecrire dans un nouveau fichier
    Par Celine76 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 17/09/2008, 18h06

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