Forum Clubic

Bsr c'est peut-etre simple mais mon prog n'arrive pas a ecrire dans un fichiier chaque chaine de caractères PAR LIGNE a chaque fois il écrase la chaîne précédente

public static void ecriturefichier(String str) throws IOException
{String ch;

	Scanner sc = new Scanner (System.in);
	System.out.println("donner votre chaine de caractéres :");
	ch=sc.nextLine();
	
		do{
		 FileWriter fw=new FileWriter(str);
		    BufferedWriter bw=new BufferedWriter( fw);
		    PrintWriter pw=new PrintWriter(bw);
		    
		    
         pw.write(ch);
         bw.newLine();
         pw.close();
         ch=sc.nextLine();
	}while(!(ch.equals("fin")));
	
	 	
	}

Je ne suis pas sûr d’avoir tout compris là, … il est censé faire quoi ton code ?

Dans ta boucle, je verrais plutôt:


ch = ch + sc.nextLine();

Car


ch=sc.nextLine();

ça écrase à chaque fois le contenu de ta variable plutôt que de l’ajouter à la suite

Moi je verrais plutôt ça : pastebin.com…

D’une part, en évitant d’ouvrir le fichier à chaque fois, tu ne recommence pas au début, d’autre part, tu es assuré qu’en cas d’erreur il est fermé.

Et sinon, en lisant la javadoc de FileWriter, tu trouveras une version du constructeur FileWriter prenant un booléen en entrée et permettant d’ajouter en fin de fichier plutôt que d’avoir le comportement par défaut (ie: écraser le fichier).

merci pour votre aide mais ici le fichier reste vide aucune chaîne n’est enregistré dans le fichier !