ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 2010
-
13 avril 2005 à 16:05
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 2011
-
15 avril 2005 à 10:47
public void Initquizzstatic ()//init le vector static a la classe
{
Object temp = new Object();
int i;
String nom;
try
{
DataInputStream br = new DataInputStream(new BufferedInputStream(new FileInputStream("bddquestion.txt")));
String ligne;
i = 0;
ligne = br.readUTF ();
while (ligne != null) //tantque la ligne contient quelquechose
{
temp = InitCquestionqcm (ligne);//lis une ligne pour crée temp
nom = temp.getClass ().getName ();
if (nom.equals ("Cquestionopen"))
((Cquestionopen)temp).setido(i);
else
((Cquestionqcm)temp).setid(i);
Vquest.addElement(temp);//ajoute temp dans le vector
voila ceci lance une exception on pense que celà vient du fait qu'il ne ferme pas le fichier
donc bon sait pas trop Help
merci
I am a heap of shit to human appearance
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 13 avril 2005 à 17:19
Salut (ça fait pas de mal),
d'après la javadoc, cette exception est lancée si la fin de fichier est
détectée avant la lecture complète de la valeur. Donc est ce que le
fichier est correct ?
ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 20101 13 avril 2005 à 19:00
Salut, merci pour la reponse
le fichier est de la forme suivante.
q;Quelle est la capitale de la russie?;Bruxelles;Moscow;Paris;Kiev;Moscow;4;1;
o;raconter l'histoire de l'informatique.;4;2;
1er champs type de question q questionqcm o=question ouverte
2eme champs = la question
avant dernier champs point attribué a la question
dernier champs = le numero de chapitre de la kestion
et les autres chances c'est les reponses et la reponse vrai pour les question qcm.
enfaite en travaillant dessus on dirait qui ne trouve pas le null car c'est en binaire.
je pense. j'arrive pas comprendre pourquoi.
ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 20101 14 avril 2005 à 01:19
ben oui, je m'en doute que je peux le fermer mais le br.close(); sert a ça.
mais on dirait que cela le survole apres la sortie du while. très bizarres
enfin merci quand même je cherche.
ObiWanKennedy
Messages postés60Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention29 octobre 20101 14 avril 2005 à 10:43
Salut
enfaite l'exception est lancé dans le while ligne = br.readUTF ();
dans le while j'ai fait un bete traitement juste un affichage de la ligne. sa affiche bien toutes les lignes mais apres la derniere ligne ben sa lance l'exception. car le fichier est fini.
notre fichier fini par une ligne vide donc c'est pour ça que la condition du while c ligne != null mais j'ai l'impression qu'il ne la trouve pas la ligne null ou qu'il la code bizarrement et qui ne la reconnait pas en t'en que tels donc au final le while fait une boucle de trop qui fait lire une ligne qui n'existe pas donc cela lance l'exception.
le meme programme mais avec un readline(); marche super bien pas d'erreur rien mais comme c'est du binaire les caractère sont un peu spécial quoi.
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 14 avril 2005 à 11:17
Ca correspond donc à ce qu'il y a dans la javadoc. La lecture de la
dernière valeur échoue car il considère qu'elle est mal encodée et on
arrive à la fin du fichier.
Donc soit le fichier est corrigé pour éviter le plantage sur la
dernière ligne, soit on catche l'exception et on assume que c'est dû à
cette erreur.