IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Array index out of range: 0


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Array index out of range: 0
    Bonjour,

    Mon code ci-dessous m'indique l'erreur Array index out of range: 0. Je crois savoir que cette erreur signifie que j'essaie d'accéder à la valeur d'indice 0 mais que le tableau est vide (ou quelque chose qui s'y apparente quoi...).

    Et pourtant, j'y ai passé toute l'après-midi et je ne vois vraiment pasd'où vient le problème.
    Je poste mon code. Si vous voulez bien m'indiquez pourquoi j'ai cette erreur là ??
    Par avance merci pour votre aide. J'aimerai bien avancer dans mon code et là c'est complètement bloquant pour moi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
         protected void validateFileStructure(File file) throws IOException 
        {
                /**********************************************************************/	
                 //création d'un flux de caractères en lecture
                //BufferedReader fichierEnLecture=new BufferedReader(null);
                //FileReader fichierEnLecture=new FileReader(file);
                // fichierEnLecture.readLine();
                /**********************************************************************/
                LineIterator lineIterator = FileUtils.lineIterator(file);
                Set<String> idndocs = new HashSet<String>();
                int i= 0;
                int j=0;//compteur
     
     
     
     
     
                /**********************************************************************/
                try{
                     String ligneLue;
                    //creation du flux
                    LineNumberReader lnr=new LineNumberReader(new FileReader(file));
                     try{
     
                            while((ligneLue=lnr.readLine())!=null)//parcours des lignes
                            {    String tabLigneLue[]=ligneLue.split(";");//split la ligne lue
     
                                /*********************************************************
                                 * Vérification du code caisse existant:
                                 * codeCaisse saisie en 1ère colonne du fichier de saisie 
                                 * si code caisse existe ok sinon on delete la ligne comprenant le code caisse KO
                                 * pour ne pas générer de pdf pour cette ligne
                                 * *******************************************************/
                                String[] tabCodeCaisse=new String []{"16275","18025","15135","13135","18715","14445","14505","43199","13335","17515","12579",
                                        "11425","11315","13485","18315","12135","13825","14265","16705","12128","19019"};
     
                               boolean contain=false;
                               String valeurATrouve=tabLigneLue[0];//correspond au code caisse de la ligne lue
                               for(i=0;i<tabCodeCaisse.length;i++)
                               {      
                                       LOG.info("i= "+ i + " tabCodeCaisse[i]= "+ tabCodeCaisse[i] +" tabLigneLue= "+ tabLigneLue[0]);      
                                    if(tabCodeCaisse[i].equals(valeurATrouve))
                                   {
                                       contain=true;
                                   }
                               }
                                if(contain)
                                    {
                                    i=0;
                                    LOG.info("");
                                    }
                                else 
     
                                    LOG.info("Code Caisse "+ valeurATrouve + " inexistant." + " Verifiez la saisie.");
     
                              }//fin du while
                            LOG.info("Validation structure terminée");
                         }//fin du try
                    finally
                        { 
                            lnr.close();//libération des ressources**/
     
                        }
                }
                finally {
                }
     
         }

  2. #2
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Citation Envoyé par Morji2810 Voir le message


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String tabLigneLue[]=ligneLue.split(";");//split la ligne lue
    A mon avis, :

    String[] tabLigneLue=ligneLue.split(";");//split la ligne lue

    Si je me trompe pas, simple erreur de syntaxe... Et une erreur de syntaxe, en général, c'est une heure de sommeil qui manque!

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Merci pour ta réactivité. J'ai fait la modif mais rien n'y change. (J' espérais que ce ne soit que ça )

    Je ne comprends pas pourquoi. D'autant plus qu'avec les "1 milliard" de test que j'ai fait, en fait à la fin de mon fichier, lorsqu'il lit la dernièer ligne du fichier, min indice i ne reboucle pas sur i=0 (ou du moins ne s'arrète pas). Il continue à i=21 alors que mon tableau n'a bien que 20 valeurs. (tabCodeCaisse.lenght() donne bien 21).

  4. #4
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Citation Envoyé par Morji2810 Voir le message
    Merci pour ta réactivité. J'ai fait la modif mais rien n'y change. (J' espérais que ce ne soit que ça )
    De rien ! on va essayer de truver... tu peux poster le log complet, avec les erreurs? En général, la réponse est dedans.

    Citation Envoyé par Morji2810 Voir le message
    (tabCodeCaisse.lenght() donne bien 21).
    Perso, la dessus, moi j'en compte 21 dans ta liste...

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations forums :
    Inscription : Juillet 2012
    Messages : 200
    Par défaut
    Bsr! Je crois que l'erreur se situe là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LOG.info("i= "+ i + " tabCodeCaisse[i]= "+ tabCodeCaisse[i] +" tabLigneLue= "+ tabLigneLue[0]);
    au niveau de l'accès au premier élément de tabLigneLue. L'exception indique même :
    Array index out of range: 0

  6. #6
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Citation Envoyé par esired Voir le message
    Bsr! Je crois que l'erreur se situe là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LOG.info("i= "+ i + " tabCodeCaisse[i]= "+ tabCodeCaisse[i] +" tabLigneLue= "+ tabLigneLue[0]);
    au niveau de l'accès au premier élément de tabLigneLue. L'exception indique même :
    Array index out of range: 0
    Même en mettant cette LOG.info en commentaire, j'ai toujours la même erreur...

  7. #7
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Citation Envoyé par esired Voir le message
    Bsr! Je crois que l'erreur se situe là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LOG.info("i= "+ i + " tabCodeCaisse[i]= "+ tabCodeCaisse[i] +" tabLigneLue= "+ tabLigneLue[0]);
    au niveau de l'accès au premier élément de tabLigneLue. L'exception indique même :
    Array index out of range: 0
    Je ne crois pas non plus, je pense que tu dois avoir dans ton fichier une ligne avec juste ';'. Pare que j'ai testé des fichiers de mon coté et j'ai une erreur que dans ce cas là x)

  8. #8
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Citation Envoyé par Cafeinoman Voir le message
    A mon avis, :

    String[] tabLigneLue=ligneLue.split(";");//split la ligne lue

    Si je me trompe pas, simple erreur de syntaxe... Et une erreur de syntaxe, en général, c'est une heure de sommeil qui manque!
    Les deux syntaxes sont acceptables.

  9. #9
    Membre averti
    Femme Profil pro
    Développeur Java
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Citation Envoyé par toutgrego Voir le message
    Les deux syntaxes sont acceptables.
    Oui effectivement, ça n'a rien changé.

    Voici ma log

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    09:10:01,469 INFO  ....pdf.AbstractPdfGeneratorBatch ~ >>>>> Debut du traitement de generation de pdf.
    09:10:01,493 INFO  ....pdf.AbstractPdfGeneratorBatch ~ Nombre de fichiers d'entree detectes : 1
    09:10:01,507 INFO  ....pdf.PdfGeneratorCsv ~ Code caisse OK
    09:10:01,507 INFO  ....pdf.PdfGeneratorCsv ~ Code caisse OK
    09:10:01,508 INFO  ....pdf.PdfGeneratorCsv ~ Code Caisse 1111111 inexistant. Verifiez la saisie.
    09:10:01,509 ERROR ...pdf.AbstractPdfGeneratorBatch ~ java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/08/2008, 18h27
  2. probleme de relogin: String index out of range: 0
    Par bbany dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 07/09/2007, 17h04
  3. [Struts]Bean populate & array index out of bound
    Par djoukit dans le forum Struts 1
    Réponses: 7
    Dernier message: 02/11/2006, 11h03
  4. list index out of range
    Par watcha2020 dans le forum Général Python
    Réponses: 2
    Dernier message: 29/06/2006, 09h59
  5. [Débutant]pb de fichier - array index out of bounds exception
    Par TheBlue dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 12/06/2006, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo