Pb Java

Fermé
Patwoman - 4 sept. 2002 à 17:59
 Utilisateur anonyme - 5 sept. 2002 à 11:27
Bonjour,

J'écris un programme en java. Dans celui ci je dois créer une sorte de fichier journal dans lequel je mets des infos du genre "date|xx lignes insérrées dans la table MACHIN, yy lignes deletées "etc
Ceci dans un fichier .txt.
Mais le problème c'est que je ne voudrais pas créer à chaque fois ce fichier et pouvoir insérrer de nouvelles lignes à chaque nouvelle utilisation du programme.
Je ne sais pas quelle instruction utiliser ?
J'ai écrit pour l'instant :
FileWriter text = new FileWriter ("text.txt");
text.write("Date"+date+"nb lignes .....");
que puis-je utiliser autre que write ? Pour que j'aie plusieurs lignes dans mon fichier, et pas une seule à chaque fois ?
Merci pour votre aide
A voir également:

3 réponses

choubaka Messages postés 39425 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 16 avril 2025 2 104
5 sept. 2002 à 08:14
Salut

Une solution est de d'abord tester si le fichier existe déjà ou pas.
S'il n'existe pas, le créer sinon créer un Stream pour en lire le contenu.

Extraire le contenu et le stocker par exemple dans un StringBuffer, Cet Objet Permet de travailler avec de longue chaine de caractère.

Pour ajouter une ligne, utilise la méthode append(String s), chaque ligne doit être suivi d'un caractère indiquant le retour à la ligne ( ce qui donne:

stringBuffer.append("Nouvelle ligne.\n")

. Ensuite, il te suffit de réecrire la totalité du StringBuffer dans le fichier avec le file writer.

Il n'est pas évident de travailler avec des fichiers txt, pour ma part j'évite pour la simple et bonne raison que c'est plus difficile pour retrouver les données qu'on veut analyser. Il est nécessaire par exemple de séparer chaque data par un caractère ("#" par exemple) permettant de parser le String pour identifier les différents élément constituant dans ton cas une ligne ("date#nombre deligne#insérée#table\n").

Si je peux donner un petit conseil, une petite base de données (Access par ex, sans faire de pub sachant qu'on perd en portabilité) est intéressante, surtout si les entrées deviennent nombreuses.

Autre solution, serait d'utiliser un fichier UML, assez pratique de part sa structure de données qui correspond très bien à ce que tu veux faire.


Chouba
"Obsédé des travaux manuels non pratiquant"
0
choubaka Messages postés 39425 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 16 avril 2025 2 104
5 sept. 2002 à 09:19
Oups, j'ai tapé trop vite

Autre solution, serait d'utiliser un fichier UML, assez pratique de part sa structure de données qui correspond très bien à ce que tu veux faire.

je parle bien sur de XML, je désolé d'être sorry

Chouba
"Obsédé des travaux manuels non pratiquant"
0
Utilisateur anonyme
5 sept. 2002 à 11:27
public void log(String message){
try{
PrintWriter writer = new PrintWriter(new FileWriter("c:/test.txt"));
writer.write(message);
writer.flush();
writer.close();
}catch(IOException ioe){
System.out.println("Error occured during log!");
}
}

;-)
0