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

Entrée/Sortie Java Discussion :

Lire un fichier de données et les mettre dans un tableau


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut Lire un fichier de données et les mettre dans un tableau
    Bonjour,

    Je viens de passer à Eclipse mais j'ai toujours du mal à savoir comment faire pour lire un fichier .txt contenant des données telles que :
    1234 12 34 56 78 67
    2345 34 56 7 8 99 99

    J'aimerais qu'il lise et mette dans un tableau les données 12 34 56 etc pas la première donnée.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

    j'ai essayer ca mais fais une erreur: Launch configuration BreakDictionary references non-existing project call.
    je vois pas pourquoi

    Code java : 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
    package cal;
    import java.io.*;
     
    public class cal {
     
    public static void main(String args[])throws IOException{
     
    int i=0;
    char c;
     
     
     
    while( i != -1 ) {
     
    i=new FileReader ("C:\\fichier.txt").read(); // on lit le caractère et on note son code dans i
    c=(char) i;
    System.out.print(c);
     
    }
    System.out.println();
     
    }
     
    }

    ajout: J'ai réussi le faire marcher il faillais faire run as java application ..je sais pas d'ou çà vient a mais enfin çà marche

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    voila je recommence pas un autre sujet comme le même ,mais j'ai changer de code , mais j'ai un problème la aussi
    donc fichier text :1234 56 85 96 12 36
    quand je lui demande de convertir en int ne veu pas comme il doit convertir toute la ligne et moi j'aimerai séparément ces chiffre donc 1234 56 85 etc dans le tableau
    code:
    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
    package cal;
    import java.io.*;
     
    public class cal {
     
      public static void main(String[] args) throws IOException {
     
      String fileName = "d:\\fichier.txt" ;
      String line;
      int n;
      int i=1;
      n=0;
    int line_int;
    int[] v;
    v= new int[50];
     
      try
      {      
        BufferedReader in = new BufferedReader( new FileReader( fileName  ) );
     
        line = in.readLine();
     
        while ( line != null )  // while not end of file
        {
     
          System.out.println( line );
          line_int = Integer.parseInt(line); 
          v[i] = line_int;
     
          line = in.readLine();
          //System.out.println( v[i] );
          i++;
        }
        in.close();
      }
      catch ( IOException iox )
      {
        System.out.println("Problem reading " + fileName );
      }
    }
     
    }

  3. #3
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 639
    Points : 2 148
    Points
    2 148
    Par défaut
    Il faut séparer les chiffres avant , sinon Integer.parseInt ne fera que convertir la ligne sans se soucier des espaces.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String[] stringTableau = line.split(" "); // Sépare les nombres en strings
    for(int y = 0;i < stringTableau.length;y++)
    {
    	v[y] = Integer.parseInt(stringTableau[y]); // on convertit chacun des strings en entiers
    }
    A toi de l'intégrer dans ta solution comme il te conviendra.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par PixelJuice Voir le message
    Il faut séparer les chiffres avant , sinon Integer.parseInt ne fera que convertir la ligne sans se soucier des espaces.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String[] stringTableau = line.split(" "); // Sépare les nombres en strings
    for(int y = 0;i < stringTableau.length;y++)
    {
        v[y] = Integer.parseInt(stringTableau[y]); // on convertit chacun des strings en entiers
    }
    A toi de l'intégrer dans ta solution comme il te conviendra.

    euh j'ai ajouter mais me fais erreur :

    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
    package cal;
    import java.io.*;
     
    public class cal {
     
      public static void main(String[] args) throws IOException {
     
      String fileName = "d:\\fichier.txt" ;
      String line;
      int n;
      int i=1;
      n=0;
    int line_int;
    int[] v;
    v= new int[50];
     
      try
      {      
        BufferedReader in = new BufferedReader( new FileReader( fileName  ) );
     
        line = in.readLine();
     
        while ( line != null )  // while not end of file
        {
     
          System.out.println( line );
         // line_int = Integer.parseInt(line); 
        //  v[i] = line_int;
     
          String[] stringTableau = line.split(" "); // Sépare les nombres en strings
          for(int y = 0;i < stringTableau.length;y++)
          {
            v[y] = Integer.parseInt(stringTableau[y]); // on convertit chacun des strings en entiers
          }
     
          line = in.readLine();
          //System.out.println( v[i] );
          i++;
        }
        in.close();
      }
      catch ( IOException iox )
      {
        System.out.println("Problem reading " + fileName );
      }
    }
     
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut suite a la recherche de lire un fichier text
    La j'ai changer ...de code
    ca marche mais ne lis pas jusque au bout du fichier ..et me fais une erreur mal formate:

    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
    package file;
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    public class files 
    {
     int [] tableau;
      /**
       * Constructeur
       */
      public files()
      {
     try
       {
     
     
                      // OUVRE LE FICHIER
                      BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) );
     
                        String line;
                        // Lecture du fichier ligne par ligne. Cette boucle se termine
                        // quand la méthode retourne la valeur null.
                        while ((line = b.readLine()) != null) {    
     
                      // STOCK LA LIGNE DANS UN BUFFER
                      String tmp = b.readLine();
     
                      // COUPE LA LIGNE SUIVANT LES ESPACES
                      String [] args = tmp.split(" ");
     
                      // ALLOUE NOTRE TABLEAU DE N ELEMENTS
                      tableau = new int[args.length];
     
                      // COPIE CHAMP A CHAMP + AFFICHAGE
                      for( int i=0;i<tableau.length;i++)
                      {
                              tableau[i] = Integer.parseInt( args[i] );
     
                              System.out.println( tableau[i] );              
                      }
     
                        } 
     
     
                      } 
     
              catch( Exception e )
              {
                      System.out.println("Erreur, le fichier n'existe pas ou est mal formaté");
              }
      }
      /**
       * MAIN
       */
      public static void main( String [] args )
      {
        // On lance notre lire fichier
        new files();
      }
    }

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Dans le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         while ((line = b.readLine()) != null) { 
                      // STOCK LA LIGNE DANS UN BUFFER
                      String tmp = b.readLine();
    on lit 2 lignes (2 appels successifs de readLine()) : comme on traite que tmp, on traite une ligne sur deux. En plus, si le fichier contient un nombre de lignes impaire, tmp sera null, lors de la dernière itération, donc exception lors du split (NullPointerException).

    Pourquoi lire une ligne du fichier en la stockant dans line, et ne pas traiter directement line ?


    Par ailleurs, penses toujours à fermer les streams après les avoir lu (ou écrit). En plus, ne supposes jamais le type d'erreur en affichant un message de ton cru : affiches le message fourni par l'exception soulevée, pour t'éviter que l'exception obtenue te soit "masquée" par celle que tu penses pouvoir obtenir.

    Par exemple, tu peux écrire, ce qui fermera automatiquement le reader (sinon il faut appeler explicitement la méthode close() dans un bloc finally ) :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try(BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) ) ) {
     
    String line;      
     
    ...
     
     
    } catch( IOException e ) {
       // System.out.println("Erreur, le fichier n'existe pas ou est mal formaté");
       e.printStackTrace();
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    je vois pas bien comment incorporer ca ressemble a mon code ton code ..comment je dois modifier

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    - Le try et la construction de BufferedReader se rassemblent en une seule ligne.
    - Le catch remplace Exception par IOException.
    - ce qu'il y avait entre les deux reste inchangé.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    alors j'ai essayer de modifier le code mais fais une erreur a la fi lit la première ligne est ensuite fais une erreur:

    2345
    45
    65
    98
    85
    22
    Exception in thread "main" java.lang.NullPointerException
    at file.files.<init>(files.java:24)
    at file.files.main(files.java:54)

    dans le fichier txt :
    1234 12 34 56 12 34
    2345 45 65 98 85 22
    0123 74 65 98 85 22

    donc lis la 2 eme ligne est pas la première es ni la dernière..

    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
    package file;
    import java.io.*;
    import java.io.File;
    import java.io.FileReader;
    public class files 
    {
     int [] tableau;
      /**
       * Constructeur
       */
      public files()
      {
    // try { BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) );
     try(BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) ) )
     {            
                        String line;
                        // Lecture du fichier ligne par ligne. Cette boucle se termine
                        // quand la méthode retourne la valeur null.
                        while ((line = b.readLine()) != null) {    
     
                      // STOCK LA LIGNE DANS UN BUFFER
                      String tmp = b.readLine();
     
                      // COUPE LA LIGNE SUIVANT LES ESPACES
                      String [] args = tmp.split(" ");
     
                      // ALLOUE NOTRE TABLEAU DE N ELEMENTS
                      tableau = new int[args.length];
     
                      // COPIE CHAMP A CHAMP + AFFICHAGE
                      for( int i=0;i<tableau.length;i++)
                      {
                              tableau[i] = Integer.parseInt( args[i] );
     
                              System.out.println( tableau[i] );              
                      }
     
                        } 
     
     
                      } 
     
              catch( IOException e )
              {
                    //  System.out.println("Erreur, le fichier n'existe pas ou est mal formaté");
                      e.printStackTrace();
              }
      }
      /**
       * MAIN
       */
      public static void main( String [] args )
      {
        // On lance notre lire fichier
        new files();
      }
    }

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    T'as pas changé ce que t'a dit joel.drigo à propos des readLine(). Pourquoi ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par thelvin Voir le message
    T'as pas changé ce que t'a dit joel.drigo à propos des readLine(). Pourquoi ?
    je dois changer quoi
    j'ai éliminer
    ca mais ne fais rien la première ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // while ((line = b.readLine()) != null)
    le tmp si je le change ne fera pas le traitement non des chiffre séparer...

  12. #12
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par giovanni Voir le message
    j'ai éliminer
    ca mais ne fais rien la première ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // while ((line = b.readLine()) != null)
    Tu te doutes bien que tu ne peux pas enlever la boucle -_-°.

    Citation Envoyé par giovanni Voir le message
    le tmp si je le change ne fera pas le traitement non des chiffre séparer...
    joel.drigo t'a posé une question : à quoi sert la variable ligne ? Donc, si tu as une variable ligne, à quoi sert la variable tmp ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    ok ca marche maintenant lis jusque au bout ok je devais éliminer tmp et le remplacer par line ..je sais pas pourquoi je chercher autre chose...

    merci

    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
    package file;
    import java.io.*;
    import java.io.File;
    import java.io.FileReader;
    public class files 
    {
     int [] tableau;
      /**
       * Constructeur
       */
      public files()
      {
    // try { BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) );
     try(BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) ) )
     {            
                        String line;
                        // Lecture du fichier ligne par ligne. Cette boucle se termine
                        // quand la méthode retourne la valeur null.
                while ((line = b.readLine()) != null) {    
     
                      // STOCK LA LIGNE DANS UN BUFFER
                     // String tmp = b.readLine();
     
                      // COUPE LA LIGNE SUIVANT LES ESPACES
                      String [] args = line.split(" ");
     
                      // ALLOUE NOTRE TABLEAU DE N ELEMENTS
                      tableau = new int[args.length];
     
                      // COPIE CHAMP A CHAMP + AFFICHAGE
                      for( int i=0;i<tableau.length;i++)
                      {
                              tableau[i] = Integer.parseInt( args[i] );
     
                              System.out.println( tableau[i] );              
                      }
     
            } 
     
     
                      } 
     
              catch( IOException e )
              {
                    //  System.out.println("Erreur, le fichier n'existe pas ou est mal formaté");
                      e.printStackTrace();
              }
      }
      /**
       * MAIN
       */
      public static void main( String [] args )
      {
        // On lance notre lire fichier
        new files();
      }
    }

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    j'ai une question encore donc ,marche seulement si il y a que un espace entre les chiffre .
    s'il y a par exemple une tab donc 3 ou 4 espace me fais erreur non?
    c'est pas mieux utiliser scanner?

  15. #15
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux utiliser Scanner si tu penses que c'est plus simple pour toi.

    Saches juste que le paramètre de la méthode split() est une expression régulière : une "formule" qui permet de définir des séparateurs qui peuvent être aussi complexes que souhaités. Une tabulation peut être représentée par le caractère \t : un simple split("\t") découpera une chaîne contenant une liste de nombres séparés par des tabulations.
    Un split("(\t| )+") découpera ta chaîne en considérant que les espaces entre chaque partie est constituée d'une suite d'au moins 1 caractère (soit une espace, soit une tabulation).
    On peut même faire split("\\s+") qui signifie toute suite d'au moins un white space (un white space, c'est soit une espace, soit une tabulation, soit un saut de ligne (
    form-feed ou \f)
    , soit une fin de ligne (newline ou \n), soit une tabulation verticale ).

    C'est vrai que les Pattern peuvent sembler compliqués quand on débute, mais ils présentent un intérêt dans de nombreux cas d'analyse de base (découpage, recherche, test de ressemblance...) de chaînes de caractères.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    les valeur dans le tableau en peu juste les utiliser pour afficher?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    n=tableau[i]; // ca ok pas de erreur
                       tableau2[1]=n; // ici erreur
                       n++;
    Exception in thread "main" java.lang.NullPointerException
    at file.files.<init>(files.java:40)
    at file.files.main(files.java:64)
    j ai crée un deuxième tableau a cause tableau quand il le lit i = 1 2 3 4 et recommence pour la deuxième ligne
    je penser que les chiffre monter exemple 100 donne tableau a 100
    merci

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si l'erreur est sur le code
    tableau2[1]=n;
    , il n'y a qu'une seule possibilité : tableau2 est null (Ce que signifie NullPointerException).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Si l'erreur est sur le code
    tableau2[1]=n;
    , il n'y a qu'une seule possibilité : tableau2 est null (Ce que signifie NullPointerException).
    ce qui veu dire ?
    si tableau[i] = 25 par exemple
    n=tableau[i] me dit ok et j'ai fais un test n=25
    pourquoi je peu pas le mettre dans autre tableau2[1]=n ?
    j'ai déclarer tableau2 comme le tableau aussi
    ce que je voulais cest mettre dans un tableau de 1 a 100 ..ce qui lis si le tableau2 et donc la le tableau[25]=0 et bien il prenne la 25 au lieu du zero..

    je remet le code
    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
     
    package file;
    import java.io.*;
    import java.io.File;
    import java.io.FileReader;
    public class files 
    {
     int [] tableau;
     int [] tableau2;
     int n=0;
     
      /**
       * Constructeur
       */
      public files()
      {
     
     
     try(BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) ) )
     {            
                        String line;
                        // Lecture du fichier ligne par ligne. Cette boucle se termine
                        // quand la méthode retourne la valeur null.
                while ((line = b.readLine()) != null) {    
     
                      // STOCK LA LIGNE DANS UN BUFFER
                     // String tmp = b.readLine();
     
                      // COUPE LA LIGNE SUIVANT LES ESPACES
                      String [] args = line.split("\\s+");
     
                      // ALLOUE NOTRE TABLEAU DE N ELEMENTS
                      tableau = new int[args.length];
     
                      // COPIE CHAMP A CHAMP + AFFICHAGE
                      for( int i=0;i<tableau.length;i++)
                      {
     
                        tableau[i] = Integer.parseInt( args[i] );
     
                    tableau2[n]= tableau[i];
                       System.out.println( tableau[i] );   
                                            n++; 
     
                      }
     
            } 
     
     
                      } 
     
              catch( IOException e )
              {
                    //  System.out.println("Erreur, le fichier n'existe pas ou est mal formaté");
                      e.printStackTrace();
              }
      }
      /**
       * MAIN
       */
      public static void main( String [] args )
      {
        // On lance notre lire fichier
        new files();
      }
    }

  19. #19
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par giovanni Voir le message
    pourquoi je peu pas le mettre dans autre tableau2[1]=n ?
    Parce qu'il n'y a nulle part d'affectation de tableau de int à la variable tableau2 (donc tableau2 contient null) : int[] tableau2 déclare une variable de type tableau d'entiers. Mais ça ne lui affecte aucune valeur.


    Citation Envoyé par giovanni Voir le message
    ce que je voulais cest mettre dans un tableau de 1 a 100 ..ce qui lis si le tableau2 et donc la le tableau[25]=0 et bien il prenne la 25 au lieu du zero..
    Désolé, mais je ne comprends rien à cette phrase.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 113
    Points : 39
    Points
    39
    Par défaut
    ok résolu je penser juste déclarer le tableau suffisez
    int [] tableau2;
    mais je savais pas que en devais le initialise comme l'autre tableau en le initialise pas

    int [] tableau2=new int[100];

    merci

    Citation Envoyé par giovanni Voir le message
    ce qui veu dire ?
    si tableau[i] = 25 par exemple
    n=tableau[i] me dit ok et j'ai fais un test n=25
    pourquoi je peu pas le mettre dans autre tableau2[1]=n ?
    j'ai déclarer tableau2 comme le tableau aussi
    ce que je voulais cest mettre dans un tableau de 1 a 100 ..ce qui lis si le tableau2 et donc la le tableau[25]=0 et bien il prenne la 25 au lieu du zero..

    je remet le code
    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
     
    package file;
    import java.io.*;
    import java.io.File;
    import java.io.FileReader;
    public class files 
    {
     int [] tableau;
     int [] tableau2;
     int n=0;
     
      /**
       * Constructeur
       */
      public files()
      {
     
     
     try(BufferedReader b = new BufferedReader( new FileReader( new File("D:/Fichier.txt") ) ) )
     {            
                        String line;
                        // Lecture du fichier ligne par ligne. Cette boucle se termine
                        // quand la méthode retourne la valeur null.
                while ((line = b.readLine()) != null) {    
     
                      // STOCK LA LIGNE DANS UN BUFFER
                     // String tmp = b.readLine();
     
                      // COUPE LA LIGNE SUIVANT LES ESPACES
                      String [] args = line.split("\\s+");
     
                      // ALLOUE NOTRE TABLEAU DE N ELEMENTS
                      tableau = new int[args.length];
     
                      // COPIE CHAMP A CHAMP + AFFICHAGE
                      for( int i=0;i<tableau.length;i++)
                      {
     
                        tableau[i] = Integer.parseInt( args[i] );
     
                    tableau2[n]= tableau[i];
                       System.out.println( tableau[i] );   
                                            n++; 
     
                      }
     
            } 
     
     
                      } 
     
              catch( IOException e )
              {
                    //  System.out.println("Erreur, le fichier n'existe pas ou est mal formaté");
                      e.printStackTrace();
              }
      }
      /**
       * MAIN
       */
      public static void main( String [] args )
      {
        // On lance notre lire fichier
        new files();
      }
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/09/2011, 01h55
  2. Réponses: 3
    Dernier message: 12/11/2009, 14h26
  3. Réponses: 4
    Dernier message: 03/01/2008, 12h37
  4. Réponses: 2
    Dernier message: 22/02/2007, 19h28
  5. Réponses: 12
    Dernier message: 21/02/2007, 09h44

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