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

2 réponses

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