Programmation - A. Cohen
Cours

Lecture d'un fichier

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

Lecture caractère par caractère

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)

Exemple : Création d'un fichier

// 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.

Exemple : Exemple complet

// 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 );

Lecture bloc par bloc

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 :

  1. remplir le tableau à partir du fichier

  2. 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

Exemple : Illustration de la lecture par bloc

// 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

Exemple : Exemple complet

// 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 );

Ecriture dans un fichier (page suivante)Ouverture /fermeture d'un fichier (page Précédente)
AccueilImprimerRéalisé avec SCENARI