Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
961 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Scanner en Java

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Scanner en Java

n°2024591
adilfsr
i love you;science!!!
Posté le 22-09-2010 à 23:52:53  profilanswer
 

Bonsoir,
 
je cherche à réaliser une méthode qui doit récupérer des informations contenues dans un fichier .txt. je veux trouver comment récuperer plusieurs informations sur la même ligne.
 
sachant que chaque ligne contiendra :  
[string] puis un [string] puis un [string] puis un [string] puis un [double] et a la finun [int], et je dois récupérer ces 3 infos pour chaque ligne
 
exemple de fichier .txt
 
L012 MADAME THERESE Biographie A082  15.00 219
L014 LE DERNIER DES MOHICANS Essai A037  15.80 222
L016 PINOCCHIO Roman A032  14.00 132
L018 LE PETIT CHOSE Roman A043  21.00 115
L020 LETTRES DE MON MOULIN Nouvelles A043  14.60 188
L022 DON QUICHOTTE DE LA MANCHE Roman A021  11.50 347
L024 EUGENIE GRANDET Roman A054  23.45 255
L026 LE LYS DANS LA VALLEE Roman A054  23.00 411
L030 LES MISERABLES Roman A085  9.50 418
L032 LES TRAVAILLEURS DE LA MER Roman A085  19.00 362
 
j'ai essayé avec ca :
 
 public void lireBddLivre(String nomFichier) throws IOException {
  // TODO Auto-generated method stub
       Scanner s = new Scanner(new File(nomFichier));
         s.useDelimiter("\t" );
         
         String titre;
         String code;
         String codeAuteur;
         String categorie;
         int nbPages;
         double prix;
         
         while(s.hasNext())
         {
              code=s.next();
              titre=s.next();
              categorie=s.next();
              codeAuteur=s.next();
              prix=s.nextDouble();
              nbPages=s.nextInt();  //sachant que je dois passer a la ligne suivante !
           
              Livre l = new Livre(titre,code,codeAuteur,categorie,nbPages,prix);
              addLivre(l);
         }
         s.close();
 }
 
quelqu'un peut-il m'aider  SVP ?
 
Édité par Elmoricq : modification du titre ; les titres tout en majuscules sont prohibés, cf. règles de la section.


Message édité par Elmoricq le 23-09-2010 à 14:02:18
mood
Publicité
Posté le 22-09-2010 à 23:52:53  profilanswer
 

n°2024638
roondar
Posté le 23-09-2010 à 09:48:03  profilanswer
 

Peut être en t'aidant de cette librairie, http://ostermiller.org/utils/CSV.html .
Sinon tu mets la ligne dans un tableau ou un string et tu utilises la méthode explode().

n°2024644
nain de ja​rdin
Posté le 23-09-2010 à 10:37:36  profilanswer
 

Un Scanner découpe les données en entrée selon un unique délimiteur (dans ton cas les tabulations). Mais ton fichier contient d'autres délimiteurs: les fins de lignes. Commence par lire ton fichier ligne par ligne (BufferedReader) et utilise ton scanner sur chaque ligne.
Sinon, quelques remarques au passage:
- le traitement ligne par ligne te permet de continuer même si une ligne est moisie
- tu es sûr que ton fichier respecte la séparation des champs par des tabulations?
- avec un Scanner, tu risques d'avoir des surprises avec le parsing des Double qui va utiliser un délimiteur décimal en fonction de la locale. Genre il va peut-être s'attendre à trouver des nombres comme "42,0" au lieu de "42.0".


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Scanner en Java

 

Sujets relatifs
Quel parser d'expressions mathématiques en java ?Les tableau en Java
probleme d'execution netbeans javaCreation dynamique d'un Pdf a partir d'une Appli java.
Comment attribuer 2 fonctions java en même temps?programmation JAVA
[Java web] syntaxe pour le Servletimporter un projet java en eclipse
Comment rediriger le flux de sortie java[java] scanner des répertoires?
Plus de sujets relatifs à : Scanner en Java


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR