écrire où on veut dans un fichier .txt

écrire où on veut dans un fichier .txt - Java - Programmation

Marsh Posté le 12-05-2005 à 22:10:20    

Salut à vous programmeurs, j'ai un ch'tit problème. J'ai un programme qui lit un fichier .txt de 3 lignes et qui mets chaque lignes dans une JList. Exemple du fichier .txt:
 
2000 www.google.fr 80
2002 ftp.lip6.fr 21
2004 www.laposte.fr 80
 
Ensuite j'ai 3 JTextField + un JButton "mise a jour". Quand je saisie des trucs dans les JTextField et que je clique sur le boutton "mise a jour" ca doit mettre un jour la ligne correspondant a la valeur entrée dans le 1er JTextFiel (2000,2002,2004) sinon ca fait rien.
 
En fait mon problème c'est que je ne sais faire que l'écriture basique c'est a dire acquérir une chaine et l'écrire dans un fichier comme le code suivant:
 

Code :
  1. import java.io.*;
  2. public class Ecrire{
  3. File fich=new File("fichier.txt" );
  4. String message;
  5. public Ecrire(){
  6.  try{
  7.   FileWriter fw= new FileWriter(fich);
  8.   BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
  9.   System.out.println("Entrer le mot à écrire: " );
  10.   message=bf.readLine();
  11.   fw.write(message);
  12.   fw.close();
  13.  }
  14.  catch(IOException ioe){}
  15. }
  16. public static void main(String arg[]){
  17.  new Ecrire();
  18. }
  19. }


 
En fait ce que je ne sais pas faire c'est écrire à une ligne particulière du fichier sans toucher au reste.
 
Est-ce que mon problème est clair?
Si oui, pouvez vous me donner un coup de main svp?
 
merci


Message édité par tequilla76 le 12-05-2005 à 22:31:41
Reply

Marsh Posté le 12-05-2005 à 22:10:20   

Reply

Marsh Posté le 12-05-2005 à 22:39:22    

Est-il vraiment nécessaire d'exposer le bla-bla en rapport avec ton GUI ? Je ne pense pas ou j'ai mal compris ?
 
Random Access
 
Dis-moi si ça t'aide.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 12-05-2005 à 22:49:49    

je vois le principe de ton exemple avec un RandomAccessFile mais comment réécrire par dessu une ligne particulière dans mon fichier .txt?
 
(j'ai pas tout compris car je parle pas super bien anglais).

Reply

Marsh Posté le 13-05-2005 à 11:20:25    

up

Reply

Marsh Posté le 16-05-2005 à 15:06:01    

up pour savoir comment écrire dans un fichier a la ligne que l'on veut.

Reply

Marsh Posté le 17-05-2005 à 11:22:42    

Pour cela, tu ouvres ton fichier en lecture, tu recuperes les lignes que tu stockes dans un Vector.
 
Tu modifies ou ajoute la ligne que tu veux.
 
Tu reecris toutes tes lignes dans le meme fichier.
 
J'espere que j'ai repondu a ta question ;)


Message édité par h3dg3hog le 17-05-2005 à 11:32:16
Reply

Marsh Posté le 17-05-2005 à 11:57:04    

Ca va pas bien ? C'est une blague ? :o
 

Citation :


(j'ai pas tout compris car je parle pas super bien anglais)


Sorry, c'est par là qu'il faut commencer alors.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 17-05-2005 à 13:29:54    

A qui est destinée cette réponse ?

Reply

Marsh Posté le 17-05-2005 à 13:31:50    

h3dg3hog a écrit :

A qui est destinée cette réponse ?


A toi !


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 17-05-2005 à 16:46:46    

Ben je vois pas pourquoi alors ... xD


Message édité par h3dg3hog le 17-05-2005 à 16:47:02
Reply

Marsh Posté le 17-05-2005 à 16:46:46   

Reply

Marsh Posté le 17-05-2005 à 17:02:19    

- Se téléporter à la position voulue à l'aide de seek
- Ecrire dans le fichier à cet endroit
 
Et voilà, la modif est faite. Pas besoin de tout relire et de tout re-écrire !


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 17-05-2005 à 17:21:22    

sircam a écrit :

- Se téléporter à la position voulue à l'aide de seek
- Ecrire dans le fichier à cet endroit
 
Et voilà, la modif est faite. Pas besoin de tout relire et de tout re-écrire !


j'ai du louper un truc mais j'ai l'impression qu'avec RandomAcces t'as interet a vouloir ecrire le meme n° de caracteres que ceux que tu va ecraser ...

Reply

Marsh Posté le 17-05-2005 à 20:07:55    

j'ai réussi avec un Vector puis comme je mets ca dans une JList on m'a conseillé d'utiliser un DefaultListModel (abréviation pour éviter de réécrire DLM) et ca fonctionne bien.
 
Pour l'histoire de relire le fichier a chaque fois, c'est pas la peine car je stocke tout dans un DLM, quand je rentre un nouveau truc, je le stocke a la fin de mon DLM (même méthodes que Vector) puis je le reparcours a chaque lecture.
Pour la sauvegarde, elle se fait juste quand je ferme la fenêtre. Résiltat: une seule lecture au début du fichier et une seul écriture.
 
merci pour vos infos

Reply

Marsh Posté le 18-05-2005 à 15:25:09    

Np ;)


---------------
HTTP://www.css-pwned.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed