Les Allergies
Alimentaires
Posez votre question Signaler

Java erreur sur lecture fichier

david - Dernière réponse le 26 mai 2011 à 10:43
Bonjour,
voici le code de ma méthode de lecture :
public void init()
{
String maLigne;
BufferedReader monBufferedReader;
File monFichier = new File("guitare.dat");
try{
String maGuitare[] = new String[60];
monBufferedReader = new BufferedReader(new FileReader(monFichier));
while((maLigne = monBufferedReader.readLine())!=null)
{
maGuitare = maLigne.split(" ");
tabGuitare[nbGuitare] = new Guitare (maGuitare[0],maGuitare[1],maGuitare[2],maGuitare[3],maGuitare[4],"");
nbGuitare++;
}
monBufferedReader.close();
}
catch (IOException exc)
{
System.out.println("\n Erreur : " + exc);
}
}
mon fichier à 11 lignes et j'ai l'erreur suivante :
java.lang.ArrayIndexOutOfBoundsException: 10
gratte.Guitare.init(Guitare.java:120)
Je ne la comprends pas
Lire la suite 

Java erreur sur lecture fichier »

3 réponses
Réponse
+0
moins plus
Bonjour David,


Quand est-ce que nbGuitare est initialisé ?

String maGuitare[] = new String[60]; > à rentrer à l'intérieur de ta boucle comme ça :
String maGuitare[] = maLigne.split(" ");
Vérifie le nombre d'éléments de maGuitare avant toute utilisation des index (0, 1, 2, 3 et 4) ainsi que leur type
Ajouter un commentaire
Réponse
+0
moins plus
Il est déclaré dans mes variables de classes à 0. Je verifie le nombre d element grace à length ?
Herezia- 26 mai 2011 à 10:43
Oui
tabGuitare est initialisé à combien d'éléments ?
Si tu veux moins te casser la tête, utilise les java.util.List
List<Guitare> guitares = new ArrayList<Guitare>();
et dans ta boucle de lecture
guitares.add(new Guitare(arg0, arg1, ...));
Comme ça, pas d'indice et c'est orienté objet
Ajouter un commentaire
Ce document intitulé « Java erreur sur lecture fichier » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?