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 vecteur en Java


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    université constantine
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : université constantine

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Lire un fichier txt et mettre les valeurs numériques dans un vecteur en Java
    Bonsoir

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

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

    Donc je voudrais qu'une liste soit lue ligne par ligne et mémorise dans un vecteur,vecteur de nom : tab et de type (Vector<Vector<Integer>> tab )







    Merci.

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Peux tu nous montrer ce que tu as déjà essayer de faire et où se situe ton problème ?

    On va pas te faire ton boulot non plus

    Pour te mettre sur la piste, tu peux utiliser BufferedReader qui a une méthode qui pourrait bien t’intéresser pour lire ton fichier.

    Ensuite pour la découpe la Classe String contient une méthode split() qui pourrait aussi t'être utile

    Petite remarque, l'utilisation d'un Vector n'est pas nécessaire, tu peux très bien utiliser une ArrayList à la place. La seul différence entre les 2 c'est que la classe Vector est dite "thread-safe", c'est à dire qu'elle gère elle même la synchronisation de l'accès aux éléments de la liste. Ce qui n'est pas très utile dans ton cas.

    cdt.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    université constantine
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : université constantine

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par Nico02 Voir le message
    Salut,

    Peux tu nous montrer ce que tu as déjà essayer de faire et où se situe ton problème ?

    On va pas te faire ton boulot non plus

    Pour te mettre sur la piste, tu peux utiliser BufferedReader qui a une méthode qui pourrait bien t’intéresser pour lire ton fichier.

    Ensuite pour la découpe la Classe String contient une méthode split() qui pourrait aussi t'être utile

    Petite remarque, l'utilisation d'un Vector n'est pas nécessaire, tu peux très bien utiliser une ArrayList à la place. La seul différence entre les 2 c'est que la classe Vector est dite "thread-safe", c'est à dire qu'elle gère elle même la synchronisation de l'accès aux éléments de la liste. Ce qui n'est pas très utile dans ton cas.

    cdt.

    Merci pour ta reponse

    Ok j'avais lu le fichier mais le problème comment Mettre chaque ligne dans un vecteur ?

    dans un tableau j le fais comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String [] tab = s.split(" ");
                for (int i =0 ; i< tab.length ; i++)
                    {
                            int r = Double.parseDouble(tab[i]);
                    }
    mais pour un vecteur aucune idée
    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
     
     public static void main(String[] args) {
    try {
                File f1 = new File ("f:/h.txt");
                FileReader fr = new FileReader (f1);
                BufferedReader bf = new BufferedReader (fr);
                Vector <Integer> vecteur = new Vector<>(); 
     
     while ((String s = bf.readLine())!= null)
                {
     
                for (int i =0 ; i< s.length ; i++)
                    {                    
                          ?????  = s.split(" ");
     
                    }

  4. #4
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Bon tu as presque tout fais là !

    Commence par écrire correctement ta structure de donnée ArrayList< ArrayList<Integer> > tab = new ArrayList< ArrayList<Integer> >(); pour pouvoir stocker des listes d'entier.

    Ensuite ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while ((String s = bf.readLine())!= null)
    {
      for (int i =0 ; i< s.length ; i++)
      {                    
        ?????  = s.split(" ");
      }
    }
    A quoi te sert cette boucle for ??

    La variable s contient la ligne de ton fichier, c'est donc la dessus que l'on veut faire un split() pour séparer les données dans un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while ((String s = bf.readLine())!= null)
    {
      String[] liste = s.split(" ");
    }
    Après il faut parcourir ce tableau pour transformer chaque valeur en valeur numérique et ajouter le résultat à la liste principale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while (( s = bf.readLine())!= null)
    {
      String[] liste = s.split(" ");
      ArrayList<Integer> listeEntier = new ArrayList<Integer>();
      for( int i=0;i<liste.length;i++)
        listeEntier.add( Integer.valueOf( liste[i] ) );
     
      tab.add( listeEntier );
    }
    Ce qui donne au final

    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
     
    String line = null;
    ArrayList< ArrayList<Integer> > tab = new ArrayList< ArrayList<Integer> >();
     
    try
    {
    	BufferedReader br = new BufferedReader( new FileReader( "c:/test.txt" ) );
     
    		while ((line = br.readLine())!= null)
    		{
    			String[] liste = line.split(" ");
    			ArrayList<Integer> listeEntier = new ArrayList<Integer>();
    			for( int i=0;i<liste.length;i++)
    				listeEntier.add( Integer.valueOf( liste[i] ) );
     
    			tab.add( listeEntier );
    		}
    }
    catch( Exception e )
    {
    	e.printStackTrace();
    }

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    université constantine
    Inscrit en
    Novembre 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : université constantine

    Informations forums :
    Inscription : Novembre 2014
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    ! ... Merci inffinement

    mais pour afficher le contenue de : tab.add( listeEntier );

    qu est ce que j dois écris ?

    System.out.println(tab.add( listeEntier )) me donne : vrai et pas la valeur !!

  6. #6
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Mmmhh je penses que tu as beaucoup de choses à revoir si tu me poses cette question.. Le parcours de tableau/liste c'est quand même le b-a-ba !

    Que signifie pour toi cette ligne System.out.println(tab.add( listeEntier )) au regard du reste du code ?

    Essais de m'expliquer mot à mot ce que signifie cette expression.

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/05/2012, 20h52
  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