logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004
-
10 mai 2004 à 17:33
logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004
-
11 mai 2004 à 10:16
Bonjour à tous!
Jai un petit problème qui commence à me prendre la t^te sur un enregistrement dans un fichier texte. En fait je doit faire un fichier log. Je veux ouvrir un fichier pui écrire à la fin ou au début (m'en fou) et ensuite de le refermer.
J'ai déjà essayé 2 solutions :
1-
PrintStream ficout=new PrintStream(new FileOutputStream(cheminlog));
ficout.println("un ex à la con\n");
ficout.close();
2-
Fichier= new PrintWriter(new BufferedOutputStream(new FileOutputStream(new File(chemin))));
Fichier.println("truc à la con");
Fichier.close();
Pour les 2 solutions, à chaque écriture le contenu est effacé ce que je ne ve pas. J'ai trouvé un moyen de contourné en stockant le contenu dans une variable puis de l'enregistrer avec la ligne que je ve rajouter mais à long terme ce n'est pas une solution!
Est ce que des personne vois des solutions à mon problème ?
safisoft
Messages postés489Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention13 mai 20096 10 mai 2004 à 18:34
ouvre ton flux au début et garde le ouvert jusq'a ce que tu finisse; à chaque foi tu fais fichier.println("............");fichier.flush();
ne ferme le flux q'à la fin de ton programme.
si tu ve garder le contenu lors d'un autre demarrage de ton programme ca fonctionnera pas mais surement il y a une solution ;)
safisoft
Messages postés489Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention13 mai 20096 10 mai 2004 à 18:34
ouvre ton flux au début et garde le ouvert jusq'a ce que tu finisse; à chaque foi tu fais fichier.println("............");fichier.flush();
ne ferme le flux q'à la fin de ton programme.
si tu ve garder le contenu lors d'un autre demarrage de ton programme ca fonctionnera pas mais surement il y a une solution ;)
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 11 mai 2004 à 09:14
Bonjour,
Si tu veux écrire à la fin du fichier, il suffit de rajouter l'argument true dans la classe FileOutputStream.Du coup, à chaque ouverture de ce fichier, si tu écris des infos, ils seront stockés à la fin
Voilà
PS: voici la spécification dans la doc java:
public FileOutputStream(String name, boolean append)
throws FileNotFoundExceptionCreates an output
file stream to write to the file with the specified name. If the second argument is true, then bytes will be written to the end of the file rather than the beginning. A new FileDescriptor object is created to represent this file connection.
First, if there is a security manager, its checkWrite method is called with name as its argument.
If the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason then a FileNotFoundException is thrown.
logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004 11 mai 2004 à 10:16
Pour répondre à safisoft, je suis en train de réaliser un moteur de recherche et pour celui ci, j'ai besoin d'un log pour me permettre d'analyser les requêtes les plus souvent faites ou les erreurs qui reviennent le plus régulièrement. (réalisé en servlet)
L'enregistrement est occasionnel, c'est pourquoi j'avais besoin d'un ouverture et d'un enregistrement à la suite de ce qui est déjà écris dans un fichier texte.
indiana_jules ce que tu m'a donnjé marche très bien et ça écris bien à la suite du fichier texte.