A ce stade, vous avez déjà déclaré votre fichier ouvert en lecture.
Deux possibilités pour lire le contenu d'un fichier :
soit lecture caractère par caractère
soit lecture bloc par bloc
La lecture caractère par caractère se fait à l'aide de la méthode read() de la classe FileReader
En réalité, il existe trois méthodes read() qui diffèrent par le nombre de paramètres transmis à la méthode
Pour lire un seul caractère il faut utiliser la méthode read sans paramètre
Le caractère lu est un entier
variant entre 0 et 65535
ou égal à -1 si la fin du fichier est atteinte (documentation)
// crérer un fichier reader appelé in
FileReader in = new FileReader( "somefile.txt" );
// lire un caractère
int tempChar = in.read();
// convertir l'entier en caractère
char theChar = (char)tempChar;
Ce mode de lecture n'autorise pas la lecture de plusieurs caractères à la fois.
// créer un fichier reader appelé in
FileReader in = new FileReader( "somefile.txt" );
// lire tous les caractères
int tempChar;
do
{
//lire un caractère à la fois
int tempChar = in.read();
if ( tempChar >= 0 )
{
// convertir l'entier en caractère
char theChar = (char)tempChar;
// traiter le caractère ici ...
}
} while ( tempChar != -1 );
La lecture d'un bloc de caractères à la fois se fait à l'aide de la méthode read() de la classe FileReader à laquelle il faut fournir un tableau comme paramètre
La méthode read va effectuer les opérations :
remplir le tableau à partir du fichier
retourner une variable de type entier indiquant
le nombre de caractères placés dans le tableau
ou - 1 si la fin de la source de données a été atteinte
// créer un fichier reader appelé in
FileReader in = new FileReader( "somefile.txt" );
// créer un tableau de car pour les données lues
char[] buffer = new char[100];
// déclarer un entier pour garder le nombre de
//caractères stockés dans le tableau
int charCount;
// lire le bloc de données
charCount = in.read( buffer );
// traiter les données dans le tableau ...
La méthode length peut être utilisée pour savoir si le tableau a été complètement rempli ou pas.
On peut comparer les deux variables
carCount
et
buffer.length
pour savoir si le tableau a été complètement ou partiellement rempli
// créer un fichier reader appelé in
FileReader in = new FileReader( "somefile.txt" );
// créer un tableau de car pour les données lues
char[] buffer = new char[100];
// déclarer un entier pour garder le nombre de
//caractères stockés dans le tableau
int charCount;
// lire le fichier bloc par bloc
do
{ charCount = in.read( buffer );
// traiter les données du tableau ...
} while ( charCount != -1 );