Ecrire dans un fichier txt dans une ligne spécifique

most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 28 mai 2016 à 13:46 - Dernière réponse : most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention
- 28 mai 2016 à 20:16
Bonjour ,je veut écrire dans un fichier txt ,dans une ligne spécifique sans effacer son contenue mais ça ne marche pas j'ai essai deux codes :
Le premier -->

public static void ecrir_ligne_fichier(int num_ligne, String path,String texte) throws IOException {

FileWriter fichiergraph = new FileWriter(path,true);
BufferedWriter output = new BufferedWriter(fichiergraph);
int compt=1;
while ( compt<=num_ligne){
compt++;
output.write("\n");

}

output.write(texte);
output.close();
}

-->Le deuxième code consiste à lire les lignes du fichier ensuite écrire dans la ligne voulu voici mon code


public static void ecrir_ligne_fichier(int num_ligne, String path,String texte) throws FileNotFoundException, IOException {

String l = null,ligne=null;

int compt=0;

FileReader fichiergraph = new FileReader(path);

BufferedReader br = new BufferedReader(fichiergraph);


FileWriter fichiergraphe = new FileWriter(path,true);
BufferedWriter output = new BufferedWriter(fichiergraphe);

while ((ligne=br.readLine())!=null && compt<=num_ligne){
compt++;

}

output.write(texte);
br.close();
output.close();
}


Je ne comprend pas ou est le problème de l'aide s'il vous plaie j'en est vraiment besoin merci d'avance
Afficher la suite 

2 réponses

Répondre au sujet
KX 15367 Messages postés samedi 31 mai 2008Date d'inscriptionModérateurStatut 22 avril 2018 Dernière intervention - 28 mai 2016 à 18:44
0
Utile
Bonjour,

Un fichier c'est une succession de bits écrits les uns à la suite des autres sur le disque dur, tu ne peux pas insérer du texte au milieu, ou alors il faut décaler toute la fin du fichier d'autant de bits que ce que tu as inséré, sous réserve d'avoir assez d'espace à la fin du fichier.

Bref, le plus simple c'est de tout lire dans une liste, ajouter ta ligne et tout réécrire à partir de liste.

import java.nio.file.*;
import java.util.List;

Path path = Paths.get("C:/test.txt");
List<String> lines = Files.readAllLines(path);
lines.add(3, "test"); // index 3: between 3rd and 4th line
Files.write(path, lines);
Commenter la réponse de KX
most27 74 Messages postés mardi 29 octobre 2013Date d'inscription 9 juillet 2016 Dernière intervention - 28 mai 2016 à 20:16
0
Utile
Merci pour votre réponse je vais essai tout de suite
Commenter la réponse de most27

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.