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 txt et mettre les valeurs numériques 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 txt et mettre les valeurs numériques dans un tableau
    Bonjour.

    Voilà je me lance en java mais je bute un peu .

    Lecture d'un fichier txt exemple :
    1234 45 67 89 90 123
    2345 34 44 556 66 77

    Donc je voudrais qu'une liste soit lue ligne par ligne et mémorise dans un tableau de maximum 50 chiffres. Mais que les chiffres 45 67 89 90 123 etc, pas les chiffres 1234 2345 ...et ensuite bien sûr les traiter.

    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Pour lire un fichier ligne par ligne => FAQ

    Pour découper une ligne :
    http://docs.oracle.com/javase/7/docs...lang.String%29

    Pour transformer en nombre :
    http://docs.oracle.com/javase/7/docs...lang.String%29
    Ou l'équivalent dans Integer selon la taille souhaitée.

    A toi de jouer

  3. #3
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Je te propose :

    Etape 1 : tu lis ton fichier ( tu as 250.000 sites sur google qui explique comment tu devrais pouvoir trouver ^^)

    Etape 2 : tu fais un split sur le caractère qui sépare les chiffres ( blanc, tabulation autres...), tu as donc un tableau avec par case tes valeurs.

    Etape 3 : tu retires la première colonne qui contient le chiffre que tu ne veux pas.

    Etape 4 : Tu as maintenant les valeurs que tu veux pour ton traitement, dans un tableau, tu peux les mettres dans un ArrayList, Vector ou autre pour des traitements simplifiés.

    remarque : il faut que la structure du fichier soit constante avec cette méthode.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  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 précision
    Ok j'avais lu la FAQ mais le problème comment sortir les numéro de la ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String line;
    // Lecture du fichier ligne par ligne. Cette boucle se termine
    // quand la méthode retourne la valeur null.
    while ((line = buff.readLine()) != null) {
    System.out.println(line)
    Là ça me sort la ligne en entier mais je voudrait ne sortir que les chiffre sur la ligne, c'est ça mon problème.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Tout est expliqué dans les 2 posts d'avant pourtant.

  6. #6
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Ok donc si tu arrives à lire les lignes du fichier c'est l'étape 2, le split, dans ton fichier tes valeurs ont un séparateur ( un espace, tabulation ou autre) je prend la tabulation pour l'exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    while ((line = buff.readLine()) != null) {
    String tabDecoup[]=line.split("\\t");
     
    // dans chaque case de tabDecoup tu auras tes valeurs
    //tabDecoup[0]=>1234 
    //tabDecoup[1]=>45 
     
    }
    ainsi tu peux faire tes traitements les stocker dans un tableau par exemple hors boucle while pour les réutiliser, si tu les utilises au moment de la lecture comme a dis Mathieu.J il faut convertir les valeur en string en Integer pour faire des traitements sur les nombres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Int val = Integer.parseInt(tabDecoup[1])
    ainsi 45 ne sera plus un string mais un integer.

    Avec sa tu devrais t'en sortir ^^.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  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
    Ah OK je connaissais pas trop les tableau avec java. Mais enfin je pense la me débrouiller c'est très sympa merci encore

    Euh juste pour savoir, je le déclare en vector ou en tableau défini ?

  8. #8
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonsoir,

    Si tu veux stocker tes valeurs pour les réutiliser tu as plusieurs options, pour ma part je suis un adepte de l' ArrayList certains préfèrent Vector et d'autre reste sur l'ancien modèle en tableau []. Pour te dire que tu peux choisir celui que tu veux il n'y a pas de choix meilleur qu'un autre, des nuances certes mais au niveau que tu veux utiliser sa ne se remarque pas.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  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 avec eclispe me fais erreur
    Comme des petit bout de programme que vous me donnez j'essaye de le faire, correspondre avec des programme pour insérer ensuite split :

    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
    import java.io.*;
    public class split {
     
    erreur ici me dit -->  String filePath = "d:\\fichier.txt";
    // j'ai regarder bien mis un fichier fichier.txt
      try{
      // Création du flux bufférisé sur un FileReader, immédiatement suivi par un 
      // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader
      // est correctement instancié (évite les NullPointerException)
      BufferedReader buff = new BufferedReader(new FileReader(filePath));
     
      try {
      String line;
      // Lecture du fichier ligne par ligne. Cette boucle se termine
      // quand la méthode retourne la valeur null.
      while ((line = buff.readLine()) != null) {
      System.out.println(line);
      //faites ici votre traitement
      }
      } finally {
      // dans tous les cas, on ferme nos flux
      buff.close();
      }
      } catch (IOException ioe) {
      // erreur de fermeture des flux
      System.out.println("Erreur --" + ioe.toString());
      }
    }

  10. #10
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    En mettant ton code dans une méthode main ça marchera mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class UneClasse {
        public static void main(String[] args) {
        }
    }
    Tu devrais peut-être commencer par les bases du langage.

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/11/2014, 17h04
  2. Lire un fichier XML et récupérer les valeurs d'attribut
    Par dinaing dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 18/06/2010, 15h53
  3. Réponses: 43
    Dernier message: 04/04/2007, 12h49
  4. Lire un fichier Excel pour modifier les valeurs des cellules
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/10/2006, 15h13
  5. Réponses: 20
    Dernier message: 23/03/2006, 16h21

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