Prob avec vector et fichier

bruno270579 Messages postés 11 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 20 juillet 2004 - 15 avril 2003 à 01:00
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 - 16 avril 2003 à 21:59
je dois faire un projet en java et j'ai une colle
je dois faire un objet Client qui contiendrai les champs suivant
String nom, prenom, adresse;
et un Vector de client
jusque la pas de probleme.
Je dois également envoye l'objet Client dans un fichier
je fais ca de la manière suivante :

Code:

// essaiClient est un objet Client
try
{

FileOutputStream fos = new FileOutputStream("c:/projet\\test.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(essaiClient);
oos.writeObject(deuxieme);
oos.flush();
oos.close();
}
catch(Exception e) {
System.out.println("exeption"+e);
}


pour récuperer le Client
je fais comme ceci

Code:

// lecture du fichier

System.out.println("Lecture du fichier");
ObjectInputStream ois=null;
try {
int i=0;
FileInputStream fis=new FileInputStream("c:/projet\\test.ser");
ois=new ObjectInputStream(fis);
Client cl;
cl=(Client)ois.readObject();
while(true) {
i++;
System.out.println(cl.direTout()+" "+i);
System.out.println("coucou");
cl.direMontant();

Vector truc=(Vector)cl.direCompte();

for(int k=0;k<100;k++)
{
Compte[] test= new Compte [truc.size()];
test[k]=(Compte)truc.get(k);
String c=(String)test[k].propr();
System.out.println(c+" "+k);
//Compte t=(Compte) truc.get(k);
//System.out.println(t.direTout());
}

for(int j=0;j<truc.size();j++) // tant qu on a pas atteint la taille du vecteur
{
System.out.println("test nom et montant"); // alors on affiche le proprietaire du compte ainsi
Compte essaiVector=(Compte)truc.get(j); // que le montant
System.out.println(essaiVector.propr()+" "+essaiVector.direMontant());
}
cl=(Client) ois.readObject();
}
}
catch(Exception e) {
System.out.println("Exeption"+e);
}

apparement j'arrive a avoir le client mais le vector ne fonctione pas comme je voudrais,
si j'appele une methode qui devrait affiche le montant du Compte alors il met 0 et si je demande le proprietaire du compte il met null (ce sont 2 infos qui doivent se trouver dans le vector)

j'espere avoir ete +- clair

aidez moi

merci d avance

2 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
15 avril 2003 à 09:35
salut,
que te retourne la fonction direCompte() ?
je ne comprend pas tres bien pourquoi tu fais un transtypage en Vector si elle t en renvoit un.
Pourrais tu nous montrer ta classe Client s il te plait ?
Est ce que tu serialise tes clients ?
Duss
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
16 avril 2003 à 21:59
Il faut que ta classe implemente l'interface java.io.Serializable;

class Client implement java.io.Serializable
{
...
}

Tu peux sérialiser un vector dans un fichier puis que la classe java.util.Vector implémente l'interface java.io.Serializable

Cala donne:

try
{
Vector vectorAEnregistrer;
FileOutputStream fos = new FileOutputStream("c:\\projet\\test.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(vectorAEnregistrer);
oos.close();
}
catch(Exception e) {
System.out.println("exeption"+e);
}

et pour le recuperer:
try
{
Vector vectorALire;
FileInputStream fis = new FileInputStream("c:\\projet\\test.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
vectorALire= (Vector)oos.readObject();
ois.close();
}
catch(Exception e) {
System.out.println("exeption"+e);
}

Core Breaker :)
0
Rejoignez-nous