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 :

initialisation d'un tableau a partir d'un fichier texte


Sujet :

Collection et Stream Java

  1. #1
    Membre averti Avatar de infofree
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 379
    Points
    379
    Par défaut initialisation d'un tableau a partir d'un fichier texte
    bonjour

    je voudrai recuperer des données d'un fichier texte, et les enregistrer dans un tableau, mais j'ai beaucoup de mal

    exemple :
    fichier.txt contient :

    A B 2
    A C 3
    B D 1
    C D 2

    le tableau devrai contenir les données des 2 premieres colonnes, mais sans repetition, sur cette exemple ça donne : [A , B , C , D ]

    voici ce que j'ai fait jusqu'a maintenant (j'ai reussi juste a extraire les données et les afficher, maintenant il me faut les mettres dans un tableau )

    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
    import java.io.* ;
    import java.util.* ;    
    public class Lectxt
    { public static void main (String args[]) throws IOException
      { String nomfich ;
        int x = 0;
    	int [] sommets ;
        System.out.print ("donnez le nom du fichier contenant les arcs du graphe : ") ;
        nomfich = Clavier.lireString() ;
        BufferedReader entree = new BufferedReader (new FileReader (nomfich)) ;
        System.out.println ("Sommets du fichier " + nomfich + " :") ;
     
        while (true)
         { String ligneLue = entree.readLine() ;
               if (ligneLue == null) break ;
           StringTokenizer tok = new StringTokenizer (ligneLue, " ") ;  // espace separateur
           int nv = tok.countTokens() ;
     
           for (int i=0 ; i<nv-1 ; i++)
           {
     
    	   x = Integer.parseInt (tok.nextToken()) ;
     
    		System.out.print ( x +" ");
           }
     
     
          }  
     
     
        entree.close () ;
        System.out.println ("*** fin liste fichier ***");
      }
    }
    Plus j'apprends ... Plus je me sens si loin

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Points : 167
    Points
    167
    Par défaut
    Bonjour, voila ce qui est possible, il y'a surrement mieux :

    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
    public static void main(String args[]) throws IOException {
    		String nomfich;
    		int x = 0;
    		int[] sommets;
    		System.out
    				.print("donnez le nom du fichier contenant les arcs du graphe : ");
     
    		//nomfich = Clavier.lireString() ;
    		nomfich = "fic.txt";
    		BufferedReader entree = new BufferedReader(new FileReader(nomfich));
    		System.out.println("Sommets du fichier " + nomfich + " :");
     
    		String ligneLue;
     
    		// collection sans doublon
    		java.util.Set set = new java.util.HashSet();
     
    		try {
    			// ouverture du fichier
    			RandomAccessFile raf = new RandomAccessFile(nomfich, "r");
    			try {
    				//lecture du fichier ligne à ligne
    				while ((ligneLue = entree.readLine()) != null) 
    				{
    					ligneLue = entree.readLine();
    					String[] splitted = ligneLue.split(" ");
     
    					// ajout des deux premiers éléments
    					if (splitted.length >=2 )
    					{
    						set.add(splitted[0]);
    						set.add(splitted[1]);
    					}
    				}
    			} finally {
    				entree.close();
    			}
     
    		} catch (IOException e) {
    			e.printStackTrace();
     
    		}
     
    		System.out.println("*** fin liste fichier ***");
    	}
    Mon site : TKT-Web =)

  3. #3
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 011
    Points : 1 375
    Points
    1 375
    Par défaut
    Si ça peut aider ..
    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
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.StringTokenizer;
     
    public class Test {
       public static void main(String args[]) throws IOException {
          File f = new File("sommets.txt");
          BufferedReader br = new BufferedReader(new FileReader(f));
          String line = null;
          Character tableauDeChars[] = new Character[100];
     
          Set<Character> sommets = new HashSet<Character>();
          while ((line = br.readLine()) != null) {
             StringTokenizer st = new StringTokenizer(line, " ");
     
             for (int i = 0; i < 2; i++) {
                sommets.add(st.nextToken().charAt(0));
             }
          }
     
          tableauDeChars = sommets.toArray(tableauDeChars);
          /* Affichage */
          int i = 0;
          while (tableauDeChars[i] != null) {
             System.out.println(tableauDeChars[i++]);
          }
       }
    }
    Sans vérification du fichier d'entrée donc très dangereux mais ça peut te donner des idées

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/05/2010, 12h06
  2. Créer un tableau à partir d'un fichier texte
    Par jchampen dans le forum Langage
    Réponses: 9
    Dernier message: 04/11/2008, 08h34
  3. construire un tableau à partir d'un fichier texte
    Par Invité dans le forum Général Python
    Réponses: 4
    Dernier message: 25/06/2008, 19h31
  4. Réponses: 2
    Dernier message: 11/12/2007, 18h42
  5. Réponses: 11
    Dernier message: 04/08/2003, 15h30

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