Bonjour,
J'ai un fichier contenant des lignes (non, ce n'est pas une blague ). Chaque ligne commence par une date et les lignes doivent etre organisées chronologiquement.
Les lignes sont insérées sans ordre chronologique c'est à dire que je peux déjà avoir dans mon fichier les dates 20041212 et 20041214.
Lorsque j'ajoute une ligne, je veux qu'elle vienne s'insérer là où il faut.
En utilisant la classe RandomAccessFile, je peux me positionner au bon endroit avec seek mais en utilisant writeBytes(ma ligne à insérer), les données contenues sur le fichier sont ecrasées par celle que je veux insérer.
J'envisage la solution suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 donnee.writeBytes("toto"); donnee.seek(0); donnee.writeBytes("a"); j'obtiens dans le fichier "aoto" aloes que je voudrais "atoto"
1 - stocker dans une variable (disons toto) tout le contenu du fichier entre le point d'insertion et la fin du fichier
2 - insérer au début de cette variable les données à insérer
3 - utiliser witeBytes(toto)
Il n'y a pas de raison que cela ne marche pas mais cela va me faire réécrire une bonne partie de mon fichier à chaque ajout de ligne (surtout si je dois insérer au début du fichier).
Quelles sont les autres solutions ?
Merci pour votre aide
Partager