Demande d'aide SVPPPP

Résolu
joeblack198 Messages postés 13 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 11 avril 2007 - 6 mai 2006 à 11:37
joeblack198 Messages postés 13 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 11 avril 2007 - 6 mai 2006 à 18:09
voila la methode qui permet de sauvgarder les données
public static void sauveFichier() throws IOException
{
FileWriter jow = new FileWriter("Catalogue.txt");
BufferedWriter jw = new BufferedWriter(jow);

PrintWriter kw = new PrintWriter(jw);
for (int i = 0; i<Catalogue.action.size(); i++)
{
Film j = (Film) Catalogue.action.elementAt(i);
kw.println
(j.code+";" +
""+j.etat+";" +
""+j.nbrLouer+";" +
""+j.maisonProduction+";" +

""+j.titreOriginal+";" +
""+j.titreFrancais+";" +
""+j.realisateur+";" +
""+j.anneeSortie+";" +

""+j.langue+";" +
""+j.categorie+";" +
""+j.discription+";");
}
}

sachat qu'il existe 13 Vector dans l'objet Catalogue
cette classe sauvegarde tres bien les DVD
mais pour les recharger j'ai utiliser cette methode

public static void chargeFichierInstance() throws IOException

{
BufferedReader jo;
try
{
String adressedufichier = System.getProperty("user.dir") + "Catalogue.txt";
FileReader fr = new FileReader(adressedufichier);

jo = new BufferedReader(fr);

}
catch ( FileNotFoundException e)
{
return;
}

System.out.println ("\n\t2");
String code="AUCUN";
String etat="AUCUN";
int nbrLouer=0;
String maisonPr="AUCUN";

String titreO="AUCUN";
String titreF="AUCUN";
String reali="AUCUN";
int an=0;
String lang="AUCUN";

String categorie="AUCUN";
String discription="AUCUN";
String str = "AUCUN";
System.out.println ("\n\t2");

while (str != null)
{
str = jo.readLine();
StringTokenizer st = new StringTokenizer(str,";");
if(st.hasMoreTokens
())
{
code=(String) st.nextToken();
if(st.hasMoreTokens())
{
etat=(String) st.nextToken();
if(
st.hasMoreTokens())
{
nbrLouer=Integer.parseInt(st.nextToken());
if(st.hasMoreTokens())
{
maisonPr=(String)
st.nextToken();
if(st.hasMoreTokens())
{
titreO=(String) st.nextToken();
if(st.hasMoreTokens
())
{
titreF=(String) st.nextToken();
if(st.hasMoreTokens())
{
reali=(String)
st.nextToken();
if(st.hasMoreTokens())
{
an = Integer.parseInt(st.nextToken());
if(
st.hasMoreTokens())
{
categorie=(String) st.nextToken();
if(st.hasMoreTokens
())
{
discription=(String) st.nextToken();
Film j=new Film();

j.code=code;
j.etat=etat;
j.nbrLouer=nbrLouer;

j.maisonProduction=maisonPr;
j.titreOriginal=titreO;

j.titreFrancais=titreF;
j.realisateur=reali;
j.anneeSortie=an;

j.langue=lang;
j.categorie=categorie;
j.discription=discription;
addFilmCatalogue(j);

}
}
}
}
}

}
}
}
}
}
}
jo.close();
}

mais ca marche pas

esque vous pouvez regarder ce bout de code si c'est bien fait
cordialement

4 réponses

joeblack198 Messages postés 13 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 11 avril 2007
6 mai 2006 à 18:09
c'est bon j'ai trouve le problem enfaite il faut changer l'emplacement de st
public static void chargeFichierInstance() throws IOException
{
try
{
FileReader lecture = new FileReader("Catalogue.txt");
BufferedReader jo = new BufferedReader(lecture);
String str = jo.readLine();
StringTokenizer st = new StringTokenizer(str,"#");
while (str != null)
{
st = new StringTokenizer(str,"#");
Film j=new Film();
j.code=st.nextToken();
j.etat=st.nextToken();
j.nbrLouer=Integer.parseInt(st.nextToken());
j.maisonProduction=st.nextToken();
j.titreOriginal=st.nextToken();
j.titreFrancais=st.nextToken();
j.realisateur=st.nextToken();
j.anneeSortie=Integer.parseInt(st.nextToken());
j.langue=st.nextToken();
j.categorie=st.nextToken();
j.discription=st.nextToken();
addFilmCatalogue(j);
str = jo.readLine();

}
jo.close();
}
catch ( FileNotFoundException e)
{
System.out.println(e);
}
}
merci
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 mai 2006 à 11:57
Bah déjà, tout c'est if en cascade, ca fait un peu crade, j'aurais été toi, j'aurais tout lu dans un tableau à l'aide d'une boucle, et ensuite j'aurais affecter à l'objet film (ca aurait été plus lisible).

Par "ce ne marche pas" (genre de chose qui ne veux rien dire), qu'est-ce que tu veux dire ? Exception ? Résultats incorrects ?

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
joeblack198 Messages postés 13 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 11 avril 2007
6 mai 2006 à 17:29
j'ai changer comme tu la suggerer voila le code :
public static void chargeFichierInstance() throws IOException
{
try
{
FileReader lecture = new FileReader("Catalogue.txt");
BufferedReader jo = new BufferedReader(lecture);
String str = jo.readLine();
StringTokenizer st = new StringTokenizer(str,"#");
System.out.println ("\n\t2");
while (str != null)
{
System.out.println ("\n\t2");
String[] t;
int i=11;
t= new String[11] ;
System.out.println ("\n\t4");
i=0;
while(st.hasMoreTokens())
{
System.out.println ("\n\t"+i);
t[i]=st.nextToken();
i++;
}
System.out.println ("\n\t6");
Film j=new Film();
j.code=t[0];
j.etat=t[1];
j.nbrLouer=Integer.parseInt(t[2]);
j.maisonProduction=t[3];
j.titreOriginal=t[4];
j.titreFrancais=t[5];
j.realisateur=t[6];
j.anneeSortie=Integer.parseInt(t[7]);
j.langue=t[8];
j.categorie=t[9];
j.discription=t[10];
addFilmCatalogue(j);
str = jo.readLine();
st = new StringTokenizer(str,"#");
}
jo.close();
}
catch ( FileNotFoundException e)
{
System.out.println(e);
}
}
mais ilm m'affiche ca :
Exception in thread "main" java.lang.NullPointerException
at java.util.StringTokenizer.(Unknown Source)
at java.util.StringTokenizer.(Unknown Source)
at lOcaDVD.Catalogue.chargeFichierInstance(Catalogue.java:670)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
6 mai 2006 à 17:52
Es-tu sûr que le fichier Catalogue.txt existe à l'emplacement de ton prog ?
Es-ce que ton fichier contient quelque chose lorsque tu lance la lecture ?

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
Rejoignez-nous