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 :

Lecture fichier texte, séparateur ;


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut Lecture fichier texte, séparateur ;
    Bonjour,

    Je souhaite pouvoir lire mon fichier test.txt ci dessous :

    aaa;bbb;ccc
    ddd;eee;fff
    d;f;g


    est il possible de récupérer bbb, pour la 1ère ligne
    est il possible de récupérer fff pour la deuxieme ligne
    et d pour la dernière ligne?

    En gros je souhaite pouvoir choisir ma ligne et ma colonne....

    Merci de m'aider,
    Florian

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 261
    Points : 164
    Points
    164
    Par défaut
    Salut,

    Si tu utilises ; comme délimiteur, le plus simple serait de partir sur du csv, ce à quoi s'apparent ton fichier txt en fait.

    Du coup je te conseillerai de voir tout ce qui est CSVReader en java.

    Regarde de ce côté :

    http://sourceforge.net/projects/opencsv/files/opencsv/

    Il y a peut être mieux comme api.

    Sinon, tu peux le traiter comme un fichier texte, et prendre le ; comme délimiteur, en jouant sur les InputStream,...

    Mais pas d'intérêt apparent à première vue

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    D'accord, merci je vais aller voir ça de suite et je te tiens au courant de mon avancement

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci, et tu n'aurais pas un exemple de code java? car ça m'a l'air plutot compliqué...

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Points : 417
    Points
    417
    Par défaut
    Si tu veux t'amuser sinon, tu peux utiliser la méthode split pour les objets string.

    En gros, tu fais :

    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
     
            Scanner lecteur=null;
            String[][] tableau = new String[nbLignes][nbColonnes];//le tableau où stocker tes résultats. Tu peux aussi utiliser un ArrayList
            try {
                int i = 0;
                lecteur = new Scanner(new FileReader(adresseDuFichier));
                while(lecteur.hasNextLine()) {
                    String ligne = lecteur.nextLine();
                    String[] ligneTableau = ligne.split(";");//transforme par exemple "aaa;bbb;ccc" en {"aaa","bbb","ccc"}
                    tableau[i] = ligneTableau;
                }
            }
            catch (Exception e) {
                System.out.println("erreur de lecture");
            }
            finally {
                if(lecteur!=null) {lecteur.close();}
            }
    J'ai pas testé, mais à 2 ou 3 modifs près t'as l'esprit du truc

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Re bonjour,

    Merci votre solution me va très bien, mais j'ai un petit soucis avec la méthode split qui me sort l'erreur suivante :

    [Ljava.lang.String;@15bec86
    [Ljava.lang.String;@57a1e
    [Ljava.lang.String;@19455f1

    Une idée?

    Merci

  7. #7
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Donne ton code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    //Création du tableau de comparaison
    Scanner lecteur=null;
    String[][] tableau = new String[100][3];//le tableau où stocker tes résultats. Tu peux aussi utiliser un ArrayList
    try {
    int i = 0;
    lecteur = new Scanner(new FileReader("D:/test.txt"));
    while(lecteur.hasNextLine()) {
    String ligne = lecteur.nextLine();
    String[] ligneTableau = ligne.split(";");//transforme par exemple "aaa;bbb;ccc" en {"aaa","bbb","ccc"}
    tableau[i] = ligneTableau;
    System.out.println(tableau[i]);
    }

    }
    catch (Exception e) {
    System.out.println("erreur de lecture");
    }
    finally {
    if(lecteur!=null) {lecteur.close();}
    }


    //extrait du fichier texte :
    aaa;bbb;ccc
    ddd;eee;fff
    d;f;g

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Voici la solution :

    System.out.println(Arrays.toString (tableau [i]));


    Merci à tous.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Je souhaite maintenant n'afficher que le deuxième élément de la deuxième colonne de mon tableau... c'est à dire " eee "

    System.out.println(tableau[2][2]) ? ne fonctionne pas...


    //tableau
    aaa; bbb; ccc
    ddd; eee; fff;
    ggg;hhh;iii


    comment faire?

  11. #11
    Membre actif Avatar de Gaillac
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Points : 209
    Points
    209
    Par défaut
    Le tableau étant indexé à partir de 0 (enfin chaque dimension du tableau étant indexée à partir de 0), plutôt tableau[1][1] ...

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

Discussions similaires

  1. Lecture fichier texte
    Par vince-60 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/04/2006, 14h15
  2. [VB]Probleme lecture fichier text et affichage
    Par clochardevobsy dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/03/2006, 08h46
  3. lecture fichier texte et ...
    Par Nils30 dans le forum Langage
    Réponses: 5
    Dernier message: 12/01/2006, 11h55
  4. lecture fichier text et renvoi du contenu en byte *
    Par JulienT dans le forum Réseau
    Réponses: 3
    Dernier message: 02/01/2006, 13h21
  5. Lecture fichier text
    Par krfa1 dans le forum ASP
    Réponses: 13
    Dernier message: 25/11/2005, 08h00

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