Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probléme gestion fichier

    21 février 2017 à 16:58:14

    Bonjour,

    Je suis en train de créer un programme qui enregistre certaine variable dans un fichier texte mais malgré mon if (fichier.exist()) {} Le programme crée un nouveau fichier au lieu d'écrire dans celui précédemment créer comment faire ? Mon code :

    package Entrainement ;
    
    import java.io.File;
    import java.io.FileWriter;
    
    public class GestionFile {
    	 
    	public static void writeVilles (String name, String nameIn, String nbrHabs, String pays, String departement, String region) {
    		
    			final String chemin = "C:/Users/arthu/Desktop/Java Projets/Entrainement/src/Entrainement/" + name + ".txt" ;
    	        final File fichier = new File(chemin) ; 
    	        
    	        try {
    	        	
    	        	if (fichier.exists()) {
    	      
    	        		
    	        		
    	        	} else { fichier .createNewFile() ; }
    	        	
    	            final FileWriter writer = new FileWriter(fichier) ;
    	            
    	            try {
    	            	
    	            	writer.write("+------------------------------------------+\n") ; 
    	        		writer.write("|                " + name + "                     |\n") ; 
    	        		writer.write("+------------------------------------------+\n\n") ;
    	                
    	        		writer.write(nbrHabs + "\n") ;
    	        		writer.write(pays + "\n") ;
    	        		writer.write(departement + "\n") ;
    	        		writer.write(region + "\n") ;
    	            	
    	            } finally {
    	               
    	                writer.close() ;
    	                
    	            }
    	            
    	        } catch (Exception e) {
    	        	
    	            System.out.println("Impossible de creer le fichier") ;
    	            
    	        }
    	    }
    		
    	public static void main(final String[] args) {
    		
    		
    		
    	}
    }

    Merci d'avance !

    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2017 à 17:59:15

      Salut !

      Quand tu créer un fileWriter le contenu du fichier est effacé.

      PS : le signe ! veut dire contraire donc utilise plutôt :

       if (!fichier.exists()) fichier.createNewFile();

      Hé oui il n'est pas nécessaire non plus de mettre des accolades quand il n'y a qu'une ligne.

      PS2 : Utilise plutôt des BufferedWriter (c'est plus optimisé), exemple :

      final BufferedWriter writer = new BufferedWriter (new FileWriter (fichier));

      -
      Edité par Cl00e9ment 21 février 2017 à 18:00:20

      • Partager sur Facebook
      • Partager sur Twitter
        21 février 2017 à 18:36:23

        Merci beaucoup pour tes conseils même si je connaissais le PS1 mais je n'y avais pas pensé ^^, mais sa ne marche toujours pas avec cette classe... :

        package Entrainement ;
        
        import java.io.BufferedWriter;
        import java.io.File;
        import java.io.FileWriter;
        
        public class GestionFile {
        	 
        	public static void writeVilles (String nameIn, String nbrHabs, String pays, String departement, String region) {
        		
        			final String chemin = "C:/Users/arthu/Desktop/Java Projets/Entrainement/src/Entrainement/Villes.txt" ;
        	        final File fichier = new File(chemin) ; 
        	        
        	        try {
        	        	
        	        	if (!fichier.exists()) fichier.createNewFile() ;
        	        	
        	            final BufferedWriter writer = new BufferedWriter (new FileWriter(fichier)) ;
        	            
        	            try {
        	            	
        	            	writer.write("\n\n+------------------------------------------+\n") ; 
        	        		writer.write("|                " + nameIn + "                    |\n") ; 
        	        		writer.write("+------------------------------------------+\n\n") ;
        	                
        	        		writer.write(nbrHabs + "\n") ;
        	        		writer.write(pays + "\n") ;
        	        		writer.write(departement + "\n") ;
        	        		writer.write(region + "\n") ;
        	            	
        	            } finally {
        	               
        	                writer.close() ;
        	                
        	            }
        	            
        	        } catch (Exception e) {
        	        	
        	            System.out.println("Impossible de creer le fichier") ;
        	            
        	        }
        	    }
        		
        	public static void main(final String[] args) {
        		
        		
        		
        	}
        }

         Mon problème c'est que ce qu'il y avait précédemment écrit dans le fichier est effacé...



        -
        Edité par Jupiter41 21 février 2017 à 18:39:11

        • Partager sur Facebook
        • Partager sur Twitter
          21 février 2017 à 19:55:58

          Comme je l'ai dis, quand tu créé un FileWriter ou un BufferedWriter, le contenu de ton fichier est effacer.

          Mais dsl j'ai oublié de te dire que pour éviter ça il faut ajouter un argument au FileWriter (c'est le boolean append (ajouter en français)):

          final BufferedWriter writer = new BufferedWriter (new FileWriter (fichier, true));
          • Partager sur Facebook
          • Partager sur Twitter
            21 février 2017 à 20:02:27

            Ah ok merci beaucoup je teste sa dès que possible

            ÉDIT : Sa marche merci beaucoup !

            -
            Edité par Jupiter41 21 février 2017 à 22:57:53

            • Partager sur Facebook
            • Partager sur Twitter

            Probléme gestion fichier

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown