Programmation - A. Cohen
Cours

Ouverture /fermeture d'un fichier

Ouverture du fichier en lecture

Avant de lire les données à partir d'un fichier, il faut l'ouvrir à l'aide de

  • la classe FileInputStream

ou

  • la classe FileReader

Attention :

Il existe une différence entre les deux classes FileInputStream et FileReader :

1. FileInputStream

permet de lire des bytes depuis un fichier

2. FileReader

permet de lire des caractères depuis un fichier

Dans ce cours on s'intéressera à la lecture de caractères, on utilisera donc la classe FileReader

Déclaration d'un fichier en lecture

Pour déclarer le fichier en lecture on peut utiliser une des deux méthodes :

1. 1ère méthode :

String filename = "somefile.txt";

FileReader in = new FileReader(filename);

2. 2ème méthode

FileReader in = new FileReader("data.txt");

Notez que les deux méthodes conduisent au même résultat.

La 1ère méthode a l'avantage de disposer d'une variable qui porte le nom du fichier. On peut donc envisager de demander le nom du fichier lors de l'exécution du programme.

On peut aussi utiliser l'objet File qui permet d'obtenir une représentation logique du fichier

File f = new File( "somefile.txt" );

FileReader in = new FileReader( f );

Ouverture du fichier en écriture

Avant d'écrire sur un fichier il faut l'ouvrir en écriture. On peut l'ouvrir à l'aide de

  • la classe FileOutputStream

ou

  • la classe FileWriter

Attention :

Il existe une différence entre les deux classes FileOutputStream et FileWriter :

1. FileOutputStream

permet d'écrire des bytes dans un fichier

2. FileWriter

permet d'écrire des caractères dans un fichier

Dans ce cours on s'intéressera à l'écriture de caractères, on utilisera donc la classe FileWriter

Déclaration d'un fichier en écriture

Pour déclarer le fichier en écriture on peut utiliser l'une des deux méthodes

1ère méthode :

String filename = "resultat.txt";

FileWriter out = new FileWriter(filename);

2ème méthode :

FileWriter out = new FileWriter("resultat.txt");

Comme pour la lecture, ici aussi on peut constater que les deux méthodes conduisent au même résultat. L'avantage de la première est comme pour la lecture, on dispose d'une variable qui comporte le nom du fichier en sortie. On peut donc envisager de demander à l'utilisateur de préciser un nom de fichier lors de l'exécution.

On peut aussi utiliser l'objet File qui permet d'obtenir une représentation logique du fichier

File f = new File( "resultat.txt" );

FileWriter out = FileWriter( f );

Attention :

Attention au chemin d'accès au fichier. Le fichier sera créé à l'endroit spécifié.

Si jamais le fichier existe déjà sous le même nom, il sera détruit avec les données qu'il contient déjà ! ! 

Fermeture d'un fichier

A l'issue d'une opération de lecture ou d'écriture dans un flux, il faut le fermer.

La fermeture d'un fichier libère les ressources allouées par le système pour sa gestion.

Pour cela il faut utiliser la méthode close du fichier en question

Exemple :

in.close();

Remarque :

La méthode close est disponible pour toutes les classes :

FileInputStream,

FileOutputStream,

FileReader

et FileWriter

Lecture d'un fichier (page suivante)Traitement d'un fichier (page Précédente)
AccueilImprimerRéalisé avec SCENARI