ajfanfan
Messages postés8Date d'inscriptionlundi 4 avril 2005StatutMembreDernière intervention 6 avril 2005
-
4 avril 2005 à 13:50
Mr_Obywan
Messages postés1Date d'inscriptionvendredi 23 septembre 2005StatutMembreDernière intervention23 septembre 2005
-
23 sept. 2005 à 18:38
Bonjour,
je souhaite ouvrir un fichier texte, rechercher les occurences d'une
chaine et les remplacer par une autre, puis sauvegarder le fichier
texte avec les modifications.
si j'ai bien compris (ce qui m'étonnerait). la classe java.io permet de
créer des flux d'entrée et de sortie sur un fichier, la seule idée qui
me vient, c'est d'ouvrir le fichier texte, le lire, modifier le
résultat de la lecture l'écrire dans un autre fichier, et pour finir
écraser le fichier source par le nouveau.
Cela ne me parait pas très évolué. y'a t il une classe permettant
d'ouvrir le fichier en Lecture/Ecriture pour travailler directement
dessus.
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 4 avril 2005 à 16:19
Salut,
tu ne peux pas ouvrir un fichier en lecture et en écriture en même temps en utilisant les FileReader et FileWriter. Il n'y a qu'uine classe qui peut faire ça : java.io.RandomAccesFile.
L'utilisation est un peu complexe et au final revient au même que lire un fichier, écrire dans un autre et le renommer puisqu'il qu'avec le RandomAccesFile il faut réecrire chaque ligne.
Donc ce que propose Sobieski est tout à fait correct et il n'y a pas vraiment de solution élégante.
cs_Sobieski
Messages postés54Date d'inscriptionmardi 22 mars 2005StatutMembreDernière intervention13 mars 2007 4 avril 2005 à 15:14
La tu tentes de travailler sur le même fichier. Qu'entends-tu par "cela me crée un fichier de taille nulle" ? ton fichier de base est écrasée ou ça en créé un nouveau ?
Apres un write je te conseille un fichierW.flush() aussi, histoire que ca prenne en compte la commande write
Le problème la c'est que ta ligne tu la places pas dans ton fichier (je veux dire "telle ligne à tel endroit"), je vais jeter un oeil pour tenter de trouver une feinte.
ajfanfan
Messages postés8Date d'inscriptionlundi 4 avril 2005StatutMembreDernière intervention 6 avril 2005 4 avril 2005 à 16:21
Ok, ca fonctionne, il faut juste fermer avant le delete le flux d'entree (fichier.close).
C'est exactement ce que je voulais faire, mais je dois avouer que ce
n'était pas comme ça que je voulais faire. l'histoire des flux d'entrée
sortie m'apparait comme restrictif, puiqu'il faut une variable
temporaire du type fichier pour fonctionner.
Je suis ouvert à toutes proposition pour embellir ce code, même si dans le fond, ca fonctionne et ca me suffit.
Mr_Obywan
Messages postés1Date d'inscriptionvendredi 23 septembre 2005StatutMembreDernière intervention23 septembre 2005 23 sept. 2005 à 18:38
Oui c'est bien beau cette méthode, mais pour les fichiers qui comporte
des retours à la ligne, et bien après passage dans cette méthode, les
retours à la ligne disparaissent et le contenu des fichiers est écrit
tout à la suite... Certes avec les transformations demandées, mais tout
en une seule ligne... Comment corriger ça?