Licence 2 - I4b
Semaine du 21/05 au 01/06/2007
TP 7 • Gestion des fichiers en Java
Exercice 1. Lecture de fichier en Java
1. ´Ecrire un programme qui permet de lire ligne `a ligne le contenu d’un fichier texte et qui affiche les lignes lues `a l’´ecran ;
2. Le fichier `a consid´erer dans cette seconde question est un fichier contenant des entiers. Le programme doit en afficher la somme. Utilisez les indications suivantes.
Rappel de TD :
La classeStreamTokenizerpermet de r´ealiser un analyseur lexical simple. Cette analyseur consid`ere plu- sieurs types d’unit´es lexicales (lex`eme ou tokens) :
– nombre
– mot (d´elimit´e par les espaces)
– chaˆıne de caract`eres (d´elimit´ee par des quotes) – commentaires
– EOF, EOL – etc.
On peut r´ecup´erer le type du lex`eme dans la variable d’instancettype, la valeur num´erique dansnvalet la valeur de la chaˆıne danssval. La m´ethode qui appelle l’analyseur estnextToken.
On peut red´efinir les divers caract`eres sp´eciaux qui servent de d´elimiteurs. Dans la classe, la m´ethodewordChars d´efinit les caract`eres pour les mots,resetSyntaxremet `a vide tous les caract`eres sp´eciaux,whitespaceChars d´efinit les caract`eres qui servent de d´elimiteurs pour les mots.
Les variables d’instance qui vous seront utiles dan l’exercice sont :
– double nval: contient la valeur du nombre si le lex`eme courant est un nombre ; – String sval: ce champ contient une chaˆıne de caract`eres repr´esentant ce mot, si...
– static int TT EOF: repr´esente une constante indiquant que la fin du flux a ´et´e lue ; – static int TT EOL: repr´esente une constante indiquant que la fin de la ligne a ´et´e lue ; – static int TT NUMBER: repr´esente une constante indiquant qu’un nombre a ´et´e lu ; – static int TT WORD: repr´esente une constante indiquant qu’un mot a ´et´e lu ;
– int ttype: contient le type du lex`eme venant d’ˆetre lu (suite `a un appel `a la m´ethodenextToken).
Exercice 2. Gestion de chaˆınes de caract`eres
R´ealiser un programme qui compte le nombre d’occurences des diff´erents mots d’un texte et qui affiche ensuite pour chaque mot le nombre d’occurrence trouv´ees.
Exercice 3. Structure d’acc`es et s´erialisation
R´ealiser un programme qui permet de g´erer un annuaire t´el´ephonique simple. On ne demande que les fonctions de bases et non pas la partie interface utilisateur.
1. D´efinir la structure des classesPersonneetAnnuaire;
2. `A partir de information du la documentation des API Java r´esumer les m´ethodes principales de la classe Hastable(http://depinfo.u-bourgogne.fr/docs/j2sdk-1.5.0/api/index.html) ; 3. Sachant que la classeAnnuaireest vue comme un ensemble de personne, utiliser une table de hachage
pour acc´elerer les recherches ;
4. Implanter le m´ecanisme de s´erialisation pour enregister l’annuaire et pouvoir le rechercher lors d’une nouvelle ex´ecution du programme.
Eric Leclercq —http://ludique.u- bourgogne.fr/˜leclercq— D´epartement IEM —http://ufrsciencestech.u- bourgogne.fr 1