Scanner en Java - Java - Programmation
Marsh Posté le 23-09-2010 à 09:48:03
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().
Marsh Posté le 23-09-2010 à 10:37:36
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".
Marsh Posté le 22-09-2010 à 23:52:53
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