lire ou ecrire dans un fichier

publicité
GROUPE ISN
1 de 4
LIRE OU ECRIRE DANS UN FICHIER
Les objets de la classe Reader sont des flux de caractères ouverts en lecture.
LA GESTION DES EXCEP TIONS
Exemple 1 :
import java.io. *;
void main(){
FileReader in = new FileReader("test.txt");
}
Le Java dispose d’un mécanisme de gestion d’exception qui permet de dissocier la détection d’une anomalie de son traitement.
Exemple 2 :
import java.io.*;
void main() throws FileNotFoundException {
FileReader in = new FileReader("test.txt");
}
Lorsqu’une erreur est rencontrée il doit y a voir branchement à un gestionnaire d’exception
dont le type est mentionné à throws.
GROUPE ISN
2 de 4
LECTURE OU ECRITURE DANS UN FICHIER
Il existe plusieurs méthodes de la classe FileReader qui permettent de lire un ou plusieurs caractères dans le flux. Toutes ces
méthodes sont héritées de la classe Reader et peuvent toutes lever l'exception IOException.
Une fois les traitements sur le flux terminés, il faut libérer les ressources qui lui sont allouées en utilisant la méthode close().
import java.io. *;
void main() throws IOException {
FileReader in = new FileReader("test.txt");
println(in.read());
in.close();
Pour l’écriture :
Il existe plusieurs méthodes de la classe FileWriter héritées
de la classe Writer qui permettent d'écrire un ou plusieurs
caractères dans le flux.
}
Dans cet exemple nous lisons un caractère dans le fichier.
Attention le nom du fichier est indiqué depuis javascool. Si le fichier est dans un dossier : new FileReader("dossier/test.txt");
Pour améliorer les performances des flux sur un fichier, la mise en tampon des données lues ou écrites permet de traiter un
ensemble de caractères représentant une ligne plutôt que de traiter les données caractères par caractères. Le nombre
d'opérations est ainsi réduit.
Les classes BufferedReader et BufferedWriter permettent de gérer des flux de caractères tamponnés avec des fichiers.
import java.io. *;
void main() throws IOException {
FileReader in = new FileReader("test.txt");
BufferedReader fichier = new BufferedReader (in);
println(fichier.readLine());//Renvoie la chaine
fichier.close();
}
On lit ligne par ligne
GROUPE ISN
3 de 4
LA GESTION DE PLUSIEU RS EXCEPTIONS
import java.io.*;
void main() {
try {
FileReader in = new FileReader("test.txt");
BufferedReader fichier = new BufferedReader(in);
println(fichier.readLine());
On souhaite généralement que le bloc try se
déroule sans problème. Si toutefois une
erreur se produit, on veut pouvoir contrôler
ce qui se passe et on transmet donc le
contrôle au bloc catch.
//Renvoie la chaine
Une clause catch contient les instructions à
fichier.close();
exécuter si une exception est levée par une
}
instruction du bloc try.
catch(FileNotFoundException e) // F ichier non trouvé
Si une instruction contenue dans le bloc try
{
println(e);
}
renvoie une exception, le contrôle sera
catch(IOException f) // Erreur exception du package IO
immédiatement passé à la clause catch. Si
aucune exception n'est levée, la clause catch
{
println(f);
}
}
(ou une fonction appelée depuis le bloc try)
ne sera pas utilisée.
GROUPE ISN
4 de 4
CREER UN FICHIER
Dans les exemples précédents, on supposait le fichier test.txt déjà existant sur le disque. Comment le créer par programme ?
Téléchargement