Java erreur sur lecture fichier

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

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. Il est déclaré dans mes variables de classes à 0. Je verifie le nombre d element grace à length ?
      1. 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