[JAVA] Ecrire a la fin d'un fichier

Ecrire a la fin d'un fichier [JAVA] - Java - Programmation

Marsh Posté le 05-05-2003 à 19:57:27    

Je cherche désespérément à écrire à la fin d?un fichier. En faite, chaque fois que je vais ouvrir un fichier je veux pouvoir conserver ce qu?il y a dedans et rajouter des donnes à la fin, ça parait stupide mais j?ai pas réussit (je suis débutant qu cas ou vous l?auriez pas deviné).
 
Merci d?avance  

Reply

Marsh Posté le 05-05-2003 à 19:57:27   

Reply

Marsh Posté le 05-05-2003 à 20:00:37    

Le plus simple est d'utiliser la classe java.io.RandomAccessFile (tu peux aussi jouer avec le package java.nio qui est super pratique pour ce genre de manips mais si t'es débutant, je sais pas si c'est conseillé ; j'en sais rien en fait). Ensuite tu te positionne à la fin de ton fichier en t'aidant des méthodes length() et seek(). Là-dessus, tu fais un write() et tu gagnes la guerre.
Si t'as le temps et l'envie, fouille un peu du côté de java.nio, c'est un package très bien fait et assez intuitif une fois qu'on a compris le principe de fonctionnement :)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 05-05-2003 à 20:29:39    

Merci beaucoup, je vais essayer ta premiere proposition.

Reply

Marsh Posté le 05-05-2003 à 20:45:56    


le plus simple c'est de faire un append en mettant à vrai le 2e paramêtre du constructeur :
 

Code :
  1. FileOutputStream(String name, boolean append)


 
ou
 

Code :
  1. FileWriter(String fileName, boolean append)



---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-05-2003 à 20:47:05    

Ah ouais [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 05-05-2003 à 20:47:36    

:cry: ce topic revient tout le temps :cry:
 
y'a un constructeur des Writer qui prend un boolean pour "append" :cry:
 
http://java.sun.com/j2se/1.4.1/doc [...] 20boolean)
 
 
edit: tiens, since 1.4 :??:
ha non il etait deja en 1.3 avec un String filename
http://java.sun.com/j2se/1.3/docs/ [...] 20boolean)
 
 
edit2: top grillé. tout ça parce que je trouve jamais l'url de la javadoc sur le net :o


Message édité par the real moins moins le 05-05-2003 à 20:48:39

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-05-2003 à 23:31:52    

débutant ! :o
 
suffit tu tapper le nom de la classe dans google ! ;)
 
sinon, ouais c'est nul : le booleen append existait pas avec un peremêtre File jusqu'à la jdk 1.4  :sweat:  falait repasser par la String


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-05-2003 à 23:39:07    

benou a écrit :

débutant ! :o
 
suffit tu tapper le nom de la classe dans google ! ;)
 

ben euh non justement :o
(enfin je tape tjs javadoc ClassName et puis c jamais bon :o)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-05-2003 à 23:46:06    

Reply

Marsh Posté le 05-05-2003 à 23:47:03    

oui oui mais si tu fous javadoc devant c mort :/


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-05-2003 à 23:47:03   

Reply

Marsh Posté le 05-05-2003 à 23:53:44    

the real moins moins a écrit :

oui oui mais si tu fous javadoc devant c mort :/


yakapa ! :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-05-2003 à 08:49:47    

le plus simple c (surtout pour un débutant...)  
1/ je lis et stock en string!
2/ je construit le nouveau fichier
3/ je réécri la string
 
==> propre simple éfficace et applicable à n'importe quel langage!!!

Reply

Marsh Posté le 06-05-2003 à 09:16:46    

artemice a écrit :

le plus simple c (surtout pour un débutant...) ...


ben non. Le plus simple c'est d'ajouter 5 caractères à du code poru que ca marche : ",true"

Reply

Marsh Posté le 06-05-2003 à 19:22:26    

:jap: d'accord mais bon .... au moin il serait déjà passé autre chose! :kaola:

Reply

Marsh Posté le 27-10-2005 à 12:00:16    

Salut, je debute et je me trouve egalement confronté à ce pb.
voici le code que j'utilise pour écrire dans mon fichier:
 

Code :
  1. // Ecrit simplement dans un fichier
  2. // Doit completer le fichier à chaque execution
  3. // Test:  
  4. import java.io.*;
  5. class EcritDansFichier2
  6. {
  7.         public static void main(String args[])
  8.         {             
  9.                 FileOutputStream out; // declare a file output object
  10.                 PrintStream p; // declare a print stream object
  11.                 try
  12.                 {
  13.                         // Create a new file output stream
  14.                         // connected to "myfile.txt"
  15.                         out = new FileOutputStream("EcritDansFichier2_test.txt" );
  16.                         // Connect print stream to the output stream
  17.                         p = new PrintStream( out );
  18.                         p.println ("Test 2 " );
  19.                         p.close();
  20.                 }
  21.                 catch (Exception e)
  22.                 {
  23.                         System.err.println ("Error writing to file" );
  24.                 }
  25.         }
  26. }


 
j'ai essayé comme vous avez dis precedement d'ajouter boolean append dans la ligne du FileInputStream, mais ça me cause une erreur à l'execution.
La solution de lire le fichier, en faire un String, regenerer et recopier dans un fichier fonctionne, mais je prefererais ne pas avoir à faire tout cela si c'est possible...
Avez vous une suggestion pour mon code?
Merci


---------------
>> Portfolio: www.MyDeclic.com
Reply

Marsh Posté le 27-10-2005 à 12:20:24    

- Mauvaise gestion des exceptions.
- Quelle erreur ??
 
[:pingouino]


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

Marsh Posté le 27-10-2005 à 12:57:31    

Pourquoi vous me dites mauvaises gestions des exceptions?
 
L'erreur que j'ai est:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:  
 Syntax error on token "boolean", delete this token
 
 at EcritDansFichier2.main(EcritDansFichier2.java:19)
 
 
qd j'ajoute boolean append à la ligne 19


---------------
>> Portfolio: www.MyDeclic.com
Reply

Marsh Posté le 27-10-2005 à 13:10:00    

faut pas rajouter "boolean append", mais true

Reply

Marsh Posté le 27-10-2005 à 13:12:57    

Merci bcp phnatomass !!
Je n'avais pas compris comme ça l'utilisation de la fonction.
Je vais maintenant pouvoir tester les autres possibilités  
Un grd merci


---------------
>> Portfolio: www.MyDeclic.com
Reply

Marsh Posté le 27-10-2005 à 13:27:23    

As tu regardé la javadoc de FileOutputStream quand tu as eu ton exception ?

Reply

Marsh Posté le 27-10-2005 à 13:30:32    

oui j'etais dessus, mais je n'avais pas compris ce qu'il fallait faire avec true, boolean...
maintenant je pense avoir mieux compris comment utiliser la javadoc


---------------
>> Portfolio: www.MyDeclic.com
Reply

Marsh Posté le 27-10-2005 à 13:33:08    

[:mlc]


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

Marsh Posté le 27-10-2005 à 15:45:58    

--> White-rabbit
Dans le constructeur de PrintStream, rajoute un ",true" ou bien rajoute un p.flush(); après le p.write(xxx);  
Ca t'évitera des soucis...
 

Reply

Marsh Posté le 27-10-2005 à 16:27:29    

Les soucis ne seront qu'en partie évités avec une mauvaise gestion des exceptions...


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

Marsh Posté le 27-10-2005 à 17:02:00    

the real moins moins a écrit :

oui oui mais si tu fous javadoc devant c mort :/


L'autre solution, c'est d'aller sur la page Search J2SE Documentation (là c'est pour Java5, mais les autres sont dispos aussi), et si t'es sous Firefox tu clickette du bouton droit dans la textbox puis tu sélectionnes "Add a Keyword for this search...", tu donnes un nom à ton machin (genre "Javadoc J2SE Java5" ), un préfixe simple (jd), tu le fous dans le répertoire "Quick Searches", et t'as plus qu'à taper "jd NomDeTaClasse" pour taper une recherche dessus :o
 
(il y a ptet un moyen d'aller directement sur l'article, dans le style "I'm Feeling Lucky", mais bon je l'ai pas encore trouvé)
 
edit: trouvé, suffit d'utiliser le formulaire de recherche de Javadocs :o
eedit: merdoum, à partir de javadocs ça marche pas [:sisicaivrai]
 
Ya un bookmarklet, et tu peux l'ajouter à tes moteurs de recherche FF par contre
 
eeedit: ça marche pas parce que ces boulets n'utilisent pas le submit standard, ils passent par du JS [:pingouino]

Message cité 1 fois
Message édité par masklinn le 27-10-2005 à 17:07:44

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 27-10-2005 à 17:37:25    


c'est bien beau tout ca, mais la remarque date de 2003 :o

Reply

Marsh Posté le 27-10-2005 à 17:41:48    

lorill a écrit :

c'est bien beau tout ca, mais la remarque date de 2003 :o


Ouais, et mwin mwin sévissait déjà sur ce forum.    [:pingouino]  
 
Je ne sais pas si pingouino existait déjà.    [:pingouino]  
 
Putain comme le temps file, hein.   [:pingouino]  
 
   [:pingouino]


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

Marsh Posté le 27-10-2005 à 17:57:59    

Le pire j'ai lu la file sans me rendre compte qu'elle avait été initier à cette époque

Reply

Marsh Posté le 27-10-2005 à 18:06:48    

Merci à white-rabbit pour ce topic revival. [:dawa]


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

Marsh Posté le 27-10-2005 à 20:02:15    

lorill a écrit :

c'est bien beau tout ca, mais la remarque date de 2003 :o


Et merde [:sisicaivrai]
 
S'pas grave, ça peut servir à des gens :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-10-2005 à 00:33:27    

ué ben, mtnt, je fous plus "javadoc" dans mes recherches google, et le moteur de recherche sur la javadoc online n'existait pas à l'epoque :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-10-2005 à 09:07:35    

the real moins moins a écrit :

n'existait pas à l'epoque :o


Ca te rajeunit pas, hein. [:dawa]


Message édité par sircam le 28-10-2005 à 09:07:41

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

Marsh Posté le 28-10-2005 à 11:42:12    

no [:natas]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-10-2005 à 16:48:16    

merci  ;)
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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