Creer une Liste a partir d un Fichier RandomAccesFile????

cs_Delamour Messages postés 19 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 1 février 2007 - 5 janv. 2005 à 01:33
cs_Delamour Messages postés 19 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 1 février 2007 - 16 juin 2005 à 23:37
Slut a tous!
j ai un gros problem , en fait j aimerais a partir d un Fichier RandomAccesFile ke j ai crée , creer une Liste. Je m explike: Dans mon Fichier j enregistre les caracteristik d une personee(Nom, Prenom, adresse, poids, et ID). Ensuite j aimerai créer une liste de tous les ID contenu dans mon Fichier et c est justemnt la mon gros problem. Voici une partie de mon code:


import ea.*;
import java.util.*;
import java.io.*;


public class MonTest {

public static final long Longeur = 256;


// Liste pr les IDs
ArrayList keys = new ArrayList();



public void enregistre(Patient monPat) {
long position = 0;

try {
RandomAccessFile monFichier = new RandomAccessFile("Anatole.txt", "rw");
if (monFichier.length() > 0) {
position = (monFichier.length() + Longeur );


monFichier.seek(position);
monFichier.writeUTF(monPat.getNom());
monFichier.writeUTF(monPat.getPrenom());
monFichier.writeUTF(monPat.getAdresse());
monFichier.writeLong(monPat.getPoids());
monFichier.writeInt(monPat.getID());
monFichier.close();


}
}

} catch (Exception e) {
e.printStackTrace();
}

// Cette methode devrait retourner la liste de tous les ID deja enregistrés!

private ArrayList getKeys() throws IOException
{
RandomAccessFile monFichier = new RandomAccessFile("Anatole.txt", "rw");
ArrayList keys = new ArrayList();

if (monFichier.length() > 0) {


// KeyCounter
int KeyCount = monFichier.readInt();

for(int count = 0; count < KeyCount; count++) {
monFichier.readUTF();
monFichier.readUTF();
monFichier.readUTF();
monFichier.readLong();
keys.add(String.valueOf(monFichier.readInt()));??????????????????

}
}

return keys;
}

Merci de votre aide!

1 réponse

cs_Delamour Messages postés 19 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 1 février 2007
16 juin 2005 à 23:37
slut,
Je te propose de proceder coe suit, ca devrait normalement marcher:
Tant ke la longueur du fichier ne sera pas atteint, on lit un object , enregistre le key ds l ArrayList et fixe le pointeur a la position suivante ds le fichier.

private ArrayList getKeys() throws IOException
{
RandomAccessFile monFichier = new RandomAccessFile("Anatole.txt", "rw");
ArrayList keys = new ArrayList();

long longeurdufichier = monFichier.length() ;
do{

monFichier.readUTF();
monFichier.readUTF();
monFichier.readUTF();
monFichier.readLong();
keys.add(String.valueOf(monFichier.readInt()));

monFichier.seek(monFichier.getFilePointer());
}
while(monFichier.getFilePointer()<longeurdufichier);

return keys;
}

A+
0
Rejoignez-nous