Java erreur sur lecture fichier

david -  
Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

2 réponses

Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   11
 
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
0
david
 
Il est déclaré dans mes variables de classes à 0. Je verifie le nombre d element grace à length ?
0
Herezia Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   11
 
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
0