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

avec Java Discussion :

Stream Tokenizer - Lecture formatée


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut Stream Tokenizer - Lecture formatée
    J'utilise un StreamTokenizer pour faciliter la lecture formatée dans un fichier texte. La classe qui s'occupe de ça est la suivante :

    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
    class Lecteur {
      private StreamTokenizer st ;
     
      public Lecteur (String fichier) throws Throwable {
        st = new StreamTokenizer (
                new BufferedReader (
                   new FileReader (fichier))) ;
      }
     
      public int lireInt () throws Throwable {
        st.nextToken() ;
        return (int) st.nval ;
      }
     
      public double lireDouble() throws Throwable {
    	    st.nextToken() ;
    	    return (double) st.nval ;
      }
     
      public float lireFloat() throws Throwable {
    	    st.nextToken() ;
    	    return (float) st.nval ;
    }
     
      public String lireString () throws Throwable {
        st.nextToken() ;
        return st.sval ;
      }
     
      public void skip(){
    	  try {
    		st.nextToken();
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
      }
    }
    J'ai surtout besoin de lire des float et des int. Le problème est que dans un fichier contenant une série de float, certains sont écrits comme ça : 9.986759687308222e-05 mais lu par JAVA comme 9.98676.
    Pourtant, un code C utilisant fscanf ne pose pas ce problème. Existe-t-il une solution simple en JAVA pour rectifier ça ou dois-je prévoir de faire avec autre chose ?
    Autre question, avec certains fichier, mais pas tous, StreamTokenizer semble prendre les retours à la ligne comme tokens et c'est assez gênant. Un moyen pour éviter ça ?

    Merci d'avance

  2. #2
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    salut,

    pour la deuxième question, il y a la méthode eolIsSignificant(boolean flag) de StreamTokenizer, tu n'as qu'à lui passer false

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Merci, effectivement ça va mieux avec ça^^
    Par contre pour l'autre problème je vois toujours pas, je vais essayer de me débrouiller autrement, mais bon utiliser StreamTokenizer me faciliterait la tâche pour la suite...

Discussions similaires

  1. [Débutant] Lecture format CSV StreamReader?
    Par Blasphemy dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/02/2013, 23h34
  2. Repétition lecture formaté ifstream.
    Par Antares38 dans le forum SL & STL
    Réponses: 4
    Dernier message: 22/01/2010, 11h43
  3. [std::ifstream] Lecture formatée lente
    Par HanLee dans le forum SL & STL
    Réponses: 15
    Dernier message: 31/05/2009, 01h35
  4. stream et lecture/écriture simultanée
    Par Sp4ce dans le forum C#
    Réponses: 5
    Dernier message: 10/12/2008, 15h52
  5. Streaming audio : quel format ?
    Par trattos dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 09/03/2007, 13h22

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