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 :

Probleme avec FileInputStream et StringTokenizer


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut Probleme avec FileInputStream et StringTokenizer
    Bonsoir,

    lorsque je veux compiler le programme suivant:

    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
     
    public Myclass
    {
     
    String ligneParse;
     
    public void methode2(String s)
    {
     ...
    }
     
    public void methode(String nomfichier)
    {
     
    		BufferedReader br=new BufferedReader(
             new InputStreamReader(
             new FileInputStream(nomFichier)));
     
     
         while ((ligneParse=br.readLine())!=null)
         {
         	methode2(ligneParse);
         }        
    }
    }
    le compilo me renvoie l'erreur suivante:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Myclass.java:186: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
             new FileInputStream(nomFichier)));
             ^
    Myclass.java:189: unreported exception java.io.IOException; must be caught or declared to be thrown
         while ((ligneParse=br.readLine())!=null)
                                       ^
    2 errors
    Est ce qqun pourrait m'aider à resoudre ce porbleme?
    Merci.

  2. #2
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    c naturelle parce que ton code peut provoquer une Exception donc il faut l'imbriquer avec try .. catch

    essaie ca

    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
    public Myclass
    {
     
    String ligneParse;
     
    public void methode2(String s)
    {
     ...
    }
     
    public void methode(String nomfichier)
    {
    		try
    {
    		BufferedReader br=new BufferedReader(
             new InputStreamReader(
             new FileInputStream(nomFichier)));
     
     
         while ((ligneParse=br.readLine())!=null)
         {
         	methode2(ligneParse);
         }        
    }catch(Exception e)
    {};
    }
    }
    j'espere que ca va t'aider

  3. #3
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Merci Selim,


    j'ai essayé et ça marche impec' sauf au lieu de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    try{}
    catch(Exception e)
    j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    try{}
    catch(IOException e)
    Merci encore

  4. #4
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    content que ca a pu t'aidé
    +1 pour IOException

    a++

  5. #5
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut STRINGTOKENIZER
    Rebonsoir,

    en fait j'ai un autre probleme mais la c'est avec la classe StringTokenizer, en utilisant la methode nextToken, le compilateur me renvoie une erreur à l'execution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Exception in thread "main" java.util.NoSuchElementException
            at java.util.StringTokenizer.nextToken(StringTokenizer.java:332)
            at Myclasse.parseLine(Profiling.java:86)
            at Myclasse.parseFile(Profiling.java:193)
            at Main.main(Main.java:6)
    et je comprends pas ce que je dois faire?
    Y'a t'il qqun pour m'apporter une fois de plus sont aide ?
    Merci par avance.

  6. #6
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    avant d'appler nextToken() tu dois d'abor verifié s'il ya un element avec hasMoreTokens()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
             StringTokenizer st = new StringTokenizer("this is a test");
             while (st.hasMoreTokens()) {
                 System.out.println(st.nextToken());
             }
    le code précedent donne comme resultat

    this
    is
    a
    test


    ps: la prochaine fois quand tu change de sujet, creer une nouvelle discussion c mieux comme ca ce qui auront besoin trouveront plus rapidement des problemes liés a leurs problemes

    +++

  7. #7
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Ben justement j'ai mis un while (st.hasMoreTokens()) avant de faire un nextToken().

    Pourquoi ça ne marche pas alors?

  8. #8
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    tu peu collé ton code ??

  9. #9
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Voila mon code enfin une version courte car si je te mets tout ça va prendre plus de 300lignes

    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
     
    class Test
    {
    ...
     
    public void parseLine(String ligne)
    {
     StringTokenizer st = new StringTokenizer(ligne);
     
     while (st.hasMoreTokens()) 
     {
      if(st.nextToken().equals("T1"))
      {
        t1.addLast(new T1());
        motParse=st.nextToken();
        t1.getLast().nomType=motParse;
     
        motParse=st.nextToken();
        t1.getLast().idType=Integer.parseInt(motParse);
      }
      else ...
      // plein de else et de if encore dans le meme style qu'un switch
     
     }
    }

  10. #10
    Membre émérite
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Par défaut
    motParse=st.nextToken();
    t1.getLast().nomType=motParse;

    motParse=st.nextToken();
    tu a appelé nextToken() deux fois la deusieme fois sans faire le test
    donc ....

  11. #11
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Merci Selim,

    j'avais aussi capté mon ânerie. J'ai corrigé et ça marche bien maintenant.

    Merci pour ton aide

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

Discussions similaires

  1. probleme avec StringTokenizer
    Par ungasquipasse dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 24/12/2009, 15h22
  2. Probleme avec StringTokenizer
    Par LP-mpascolo dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2008, 09h24
  3. Problemes avec StringTokenizer
    Par michaelbob dans le forum Langage
    Réponses: 15
    Dernier message: 16/08/2006, 14h06
  4. [StringTokenizer] [delimiteur]Probleme avec le delimiteur!
    Par fabszn dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 27/05/2006, 17h49
  5. [stringtokenizer] probleme avec champs vides
    Par gege2mars dans le forum Langage
    Réponses: 9
    Dernier message: 30/06/2004, 08h25

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