Licence 2 — I4b
Semaine du 09/05 au 14/05/2005
TD 8 et 9 • Gestion des fichiers
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. Pour cela utiliser les indications suivantes.
La classeStreamTokenizerpermet de r´ealiser un analyseur lexical simple. Cette analyseur consid`ere plusieurs 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 fonction 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´ethodewordCharsd´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.
Plus pr´ecis´ement les variables d’instance qui vous seront utiles 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´ethode nextToken).
Exercice 2.
R´ealiser un programme qui compte le nombre d’occurences des diff´erents mots d’un texte.
Exercice 3.
R´ealiser un programme qui permet de g´erer un annuaire t´el´ephonique simple. On ne de- mande que les fonctions de bases et non pas la partie interface utilisateur. Vous utiliserez une table de hachage et le m´ecanisme de s´erialisation.
1