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


Sujet :

Entrée/Sortie Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Lire un fichier texte en Java
    je veux récupérer les donnée qui sont sur un fichier .txt
    la forme de mon fichier est la suivante:

    param n:=4;
    param c:=6;
    param d:=
    1 6 ;
    2 4 ;
    param p:=
    1 6;
    2 7;
    je veux récupérer la valeur des deux première paramètres (dans deux variable de type integer), pour les paramètre d et p je veux les récupérer sur 2 matrices.
    Merci d'avance

  2. #2
    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 : 36
    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,

    Tu n'as pas beaucoup cherché ^_^°. Après si c'est des strings il faut jouer avec des splits et Integer.parseInt(), tu devrais t'en sortir.

    lire le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    try{
    InputStream flux=new FileInputStream("test.txt"); 
    InputStreamReader lecture=new InputStreamReader(flux);
    BufferedReader buff=new BufferedReader(lecture);
    String ligne;
    while ((ligne=buff.readLine())!=null){
    	System.out.println(ligne);
    }
    buff.close(); 
    }		
    catch (Exception e){
    System.out.println(e.toString());
    }
    Si ton fichier contient des objets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FileInputStream flux= new FileInputStream("test.txt");
    ObjectInputStream lecture = new ObjectInputStream(flux);
     
    int  val = lecture .readInt();
    System.out.println(val );
    lecture .close();
    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

  3. #3
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Eh bien fais un tour sur la FAQ pour lire ton fichier. Ensuite, le reste consistera à manipuler des String (en t'aidant des méthodes disponibles au sein de l'API et documentées dans la Javadoc).
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Indre et Loire (Centre)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Merci pour vous réponse
    j'ai essayé avec la lecture ligne par ligne et j'ai récupéré les integer avec la méthode split mais sa n'as pas marché.
    je veux récupéré que les valeur de type int de chque ligne et les mettre dans autres variables.
    Merci

  5. #5
    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
    Il y a la manière bourrin : D'abord charger tout le fichier dans une String :

    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
    public static String loadFileString(File file) throws IOException {
      Reader reader = new InputStreamReader(new FileInputStream(file), "ascii");
      try {
        StringBuilder builder = new StringBuilder();
        char[] buffer = new char[512];
        int nbRead = reader.read(buffer);
        while(nbRead > 0) {
          builder.append(buffer, 0, nbRead);
          nbRead = reader.read(buffer);
        }
        return builder.toString();
      } finally {
        reader.close();
      }
    }
    Oui, c'est chiant. Il y a des bibliothèques Apache qui font ça, mais bon.
    Une fois que tu as cette String, tu peux voir qu'elle contient tout le fichier. Étape suivante.

    Ensuite tu définis une regex qui reconnaît les séquences de chiffres (les nombres, donc,) et tu boucles pour trouver toutes les occurrences de cette regex dans la String.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // d pour digit : chiffre. Toute séquence de un ou plusieurs chiffres.
    Pattern regex = Pattern.compile("\\d+");
    // Matcher de cette regex sur la String chargée en mémoire
    Matcher matcher = regex.matcher(string);
    // boucler
    while(matcher.find()) {
      // récupérer le nombre, sous forme de String
      String sNumber = matcher.group();
      // convertir le nombre en int
      int number = Integer.parseInt(sNumber);
     
      // faire ce que tu veux de ce int
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Points : 92
    Points
    92
    Par défaut Lire un fichier texte en Java
    slt pour lire le contenu d'un fichier texte il te faut l'ouvrir puis le parser et enfin en fonction de la position souhaite convertir le chaine de caractère en entier.
    a++

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    Bonsoir, j'ai à peu près le même problème, mon fichier texte contient des données de la forme :
    Voie montante Débit actuel: 286
    Voie Descendante Débit actuel: 476
    Voie montante Capacité: 23.1
    Voie Descendante Capacité: 21.5
    et je dois récupérer les valeurs pour les mettre dans un fichier csv.
    NB: je suis débutant en java
    Merci d'avance

  8. #8
    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 as différents exemples de lecture de fichier texte dans la discussion. Il y a aussi la FAQ qui donne un exemple simple.

    Par ailleurs, il y a également dans Java 8 une méthode, Files.readAllLines() qui lit directement les lignes, que tu peux utiliser si ton fichier n'est pas trop gros (toutes les lignes seront contenues en mémoire ensemble, alors que les autres méthodes ci-avant, ou dans la FAQ, chargent ligne à ligne) :

    Ensuite, il va te falloir séparer le texte et chaque valeur dans chaque ligne : si le schéma est bien celui que tu montres pour toutes les lignes sans exception, c'est-à-dire une phrase suivie d'une valeur séparée de cette phrase par une espace, il te suffit de repérer la position de la dernière espace (String.lastIndexOf(' ')) et de récupérer les caractères qui se trouvent après avec un String.substring(int);.




    Pour l'écriture du CSV, tu peux utiliser une bibliothèque, comme https://commons.apache.org/proper/commons-csv/.
    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.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    merci Joel pour ces explications, puisque je suis débutant j'ai pas tout saisi.
    pour mieux t'expliquer mon problème voici d'abord une partie du fichier:
    File.txt
    mon programme doit supprimer tous les caractères et ne garder que les valeurs : (286, 21.5, 29.3 et les "0") pour ensuite les mettre dans un fichier CSV.
    je veux juste savoir si c'est possible de faire tout ça avec Eclipse.
    et Merci.

  10. #10
    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 adnanus Voir le message
    je veux juste savoir si c'est possible de faire tout ça avec Eclipse.
    Eclipse, c'est un IDE qui permet, entre autres, de faire des programmes Java. Et faire tout ce que tu veux faire en Java, oui, c'est possible (je t'ai indiqué comment et sinon il y a plein d'exemples dans le fil et les liens que je t'ai donnés).

    Qu'est-ce que tu ne comprends pas ? Tu as des connaissances en Java au moins ? Parce que sans ça, si c'est juste pour faire le traitement que tu décris une fois, autant que tu fasses ça sous Excel.
    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.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Mars 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Architecte réseau
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 3
    Points : 7
    Points
    7
    Par défaut
    j'ai des connaissances en java qui sont minimes, c'est pour ça que je souhaite réaliser ce programme, d'une part pour un stage d'étude et d'autre part pour enrichir mes compétences en développement sous java.

    Je vais essayé de suivre les liens que tu m'a donné, j'imagine que c'est tout ce que je peux faire pour le moment.
    Et merci

Discussions similaires

  1. Lire un fichier texte en Java
    Par azedine.web dans le forum EDI et Outils pour Java
    Réponses: 3
    Dernier message: 30/06/2014, 15h18
  2. Lire des ints dans un fichier texte avec java.io
    Par Vcouprie dans le forum Général Java
    Réponses: 1
    Dernier message: 07/02/2013, 20h01
  3. Lire un fichier Text en JAVA
    Par msahmi dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 10/06/2009, 08h34
  4. [Fichier] Lire un fichier texte long
    Par _Eric_ dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 18/08/2004, 15h22
  5. Réponses: 2
    Dernier message: 26/05/2004, 17h53

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