Java bug - detecter changement dans fichiers

Fermé
Christophe - 7 mai 2008 à 02:18
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 7 mai 2008 à 10:47
Bonjour,

Sur un serveur, il y a un fichier A qui contiens un texte T. Vers x heures, le fichier est remplacé par un fichier A' portant le même nom contenant un texte T'.

J'ai fait un simple programme en java surveille l'arrivé du fichier A'. Pour cela, toutes les minutes, mon programme ouvre le fichier A, lit le contenu et le compare avec le texte T' que je connais.

Donc dès que le texte T = texte T', cela veut dire que mon fichier A a été remplacé par mon fichier A' et je suis content.

Or voila, toutes les minutes, quand mon programme lit le contenu du fichier A, il lira toujours que le contenu est T. Même après que le fichier soit réellement remplacé par A' (j'ai vérifié en allant sur le serveur et le contenu du fichié lu par mon programme est faux)

Pour résumer, le soucis est donc que mon programme lit un fichier une première fois, et lors de la Xième fois alors que le fichier a changé avec son contenu, mon programme, qui est supposé réouvrir et relire le fichier (donc le nouveau contenue), continue à lire le premier contenu.

- Pour faire tourner toutes les minutes, j'utilise un TimerTask
- Pour lire le fichier, j'utilise un BufferReader et un FileReader

Est ce que quelqu'un sait ce qui me manque ou si il y a une autre solution que le TimerTask?

Merci pour votre aide.
Cordialement,
Christophe
A voir également:

1 réponse

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
7 mai 2008 à 10:47
Salut,

Avec un bout de code/d'algo ça serait bien plus simple,

Comment t'y prends-tu ?
A chaque itération, tu fait bien une nouvelle ouverture de fichier puis une fermeture aprés lecture ? (Si tu fais un truc crade genre reset(), ça ne peut pas fonctionner...)

C'est une idée comme ça hein, sans le code source, on ne peut que supposer ;-)

a plus
0