Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1214 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Random Access File petit probleme

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Random Access File petit probleme

n°2061293
sombrero67
Heuarguhargh
Posté le 05-03-2011 à 12:48:49  profilanswer
 

Bonjour a tous , je débute en java et je doit faire un programme pour lundi , j'ai plus ou moins réussi jusqu'ici , mais j'ai un problème...
 
En gros j'utilise RandomAccessFile pour réécrire par dessus deux lignes :
 
code d'ecriture:
 
                    RandomAccessFile fichier = new RandomAccessFile("fichier.txt", "rw" );
                    String ligne = fichier.readLine();
 
                    for (int i = 1; i < k ; i++) {
                        ligne = fichier.readLine();
                    }
 
                    fichier.writeBytes(LigneBonne + Integer.toString(BonnesReponses) + ";\r\n" );
                    fichier.writeBytes(LigneMauvaise + Integer.toString(MauvaisesReponses) + ";\r\n" );
 
                    fichier.close();

 
où "k" est le nombre de lignes a sauter pour etre bien placé ,
LigneBonne et LigneMauvaise contiennent respectivement les lignes "bonnes reponses : " et "mauvaise reponses : " ,
 
Resultat:
 
avant de mettre les notes:
 
----Fichier-de-notes-----
fruit dealer
bonnes reponses :
mauvaise reponses :
cella werra
bonnes reponses :  
mauvaise reponses :  
 
et après :  
 
----Fichier-de-notes-----
fruit dealer
bonnes reponses :1;2;
mauvaise reponses :1;0;
rra
bonnes reponses :  
mauvaise reponses :  
 
Je ne comprend absolument pas pourquoi le programme supprime progressivement la ligne d'en dessous..
 
évidemment c'est très problématique , des idées ?

mood
Publicité
Posté le 05-03-2011 à 12:48:49  profilanswer
 

n°2061350
lasnoufle
La seule et unique!
Posté le 05-03-2011 à 20:45:18  profilanswer
 

C'est juste que tu n'as pas lu (ou compris) la doc.
 
http://download.oracle.com/javase/ [...] sFile.html
 
"output operations write bytes starting at the file pointer and advance the file pointer past the bytes written."
Ca dit bien "write bytes" et non "insert bytes". En gros, chaque byte que tu écris écrase le byte déjà existant.
 
Donc au départ tu as
bonnes reponses :\r\nmauvaise reponses :\r\ncella werra  
Et à la fin tu as:
bonnes reponses :1;2;\r\nmauvaise reponses :1;2;\r\nrra  
 
Solution: n'utilises pas RandomAccessFile.
Options classiques: tu utilises FileReader/BufferedReader/FileWriter/BufferedWriter pour lire/écrire tes fichiers:
- soit tu le fais en parralèle: le reader sur ton fichier original, le writer sur un fichier temporaire, et une fois terminé, tu remplaces l'original par le temporaire
- soit tu lis tout le fichier original en mémoire, fermes le reader, colles le writer sur l'original en mode écrasement et envoies la sauce.
 
Hope it helps.


---------------
C'était vraiment très intéressant.
n°2061359
sombrero67
Heuarguhargh
Posté le 05-03-2011 à 21:48:42  profilanswer
 

J'ai compris  , merci infiniment :jap:


---------------
[Awesome !]

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Random Access File petit probleme

 

Sujets relatifs
probleme baliseProbleme de footer avec height 100% ...
Requête Access : plus gros montants et "Autres"Probleme de regex
un petit test avec switchVBA Excel 2007 Problème de variable objet. Erreur 91
Problème lors de l'import de GTKCherchez l'erreur : access check failed.
Problème à l'importation B.D.D MySQLProbléme language C
Plus de sujets relatifs à : Random Access File petit probleme


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR