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 une ligne dans un fichier texte


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut Lire une ligne dans un fichier texte
    Bonjour,

    voilà, j'ai fait un petit programme pour lire les huit premières ligne d'un fichier texte.
    à léxécution j'obtiens l'erreur suivant:
    java.lang.NumberFormatException: For input string: "IMS"
    en sachant que IMS est bien le premier mot de la première ligne de mon texte.
    il semble qu'il y a un problème de format.
    les lignes de mon texte contiennent des lettres et des chiffreS donc pas seulement des chiffre.

    je dois le type int en char mais oû?
    Aidez-moi, merci.

    voici mon code:

    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
    import java.io.*;
     
     
    public class ReadLine
     
    {
    public static void main(String[] args) 
    { 
    //String chaine = null; 
    // lecture du fichier texte 
    try { 
    InputStream ips = new FileInputStream("Texte.txt"); 
    InputStreamReader ipsr = new InputStreamReader(ips); 
    BufferedReader br = new BufferedReader(ipsr); 
    String ligne; 
    int numLigne = 0; 
    int nombreDeLignes = 8; // par exemple 
    int[] var = new int[nombreDeLignes ]; 
     
    while ((ligne = br.readLine()) != null) 
    { 
    numLigne++; 
    System.out.println(ligne); 
    //chaine += ligne + "\n"; 
    int ind = ligne.indexOf(" ");
    var[numLigne -1] = Integer.parseInt(ligne.substring(0, ind)); 
    } 
     
    for (int i = 0; i < var.length; i++) 
    { 
    System.out.println("var[" + i + "] = " + var[i]); 
    } 
     
    br.close(); 
    } 
    catch (Exception e) 
    { 
    System.out.println(e.toString()); 
    }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Bonjour,

    int ind = ligne.indexOf(" ");
    var[numLigne -1] = Integer.parseInt(ligne.substring(0, ind));
    Tu essaie de transformer "IMS" en int alors que c'est une chaine de caractere.
    D'où ton exception.

    Cdlt

  3. #3
    Membre éclairé Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 272
    Par défaut
    Si passe int en String, j'ai une erreur de compilation.
    pourquoi?
    merci

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    re,

    Pourrais-tu s'il te plait faire des phrases un peu plus explicite.

    Bref, le "Integer.parseInt(...)" s'applique sur des chaines de caractères représentant un entier et te renvoie l'entier correspondant.
    Toi tu essaie de transformer "IMS" en entier ce qui n'est pas possible.

    Il te faut etre sur que la chaine de caractere sur laquelle tu appliques cette méthode soit une représentation d'entier.

    Cdlt,

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut
    Salut,

    tu devrais mettre b.close(); dans un bloc finally et mettre un blox try{}catch( NumberFormatException e){} autour de var[numLigne -1] = Integer.parseInt(ligne.substring(0, ind));
    Si ça ne sort pas à la compilation c'est, je pense, parce que la méthode parseInt prend un string représentant un entier pour renvoyer un int de cette valeur http://java.sun.com/j2se/1.4.2/docs/...a.lang.String)

    bon courage

Discussions similaires

  1. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  2. Lire une ligne dans un fichier
    Par dbozec dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2006, 23h22
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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