Fonctions sur les fichiers
dans la librairie JavaETBib



La classe es de la librairie JavaETBib contient des méthodes de manipulation des fichiers. Certaines de ces méthodes sont utilisées dans les exemples de ce cours (Barre d'Outils, Menu, Gestion de fenêtres) et d'autres, dans les exercices (réalisation d'un dictionnaire illustré).

Ces méthodes sont toutes des méthodes de classe. A l'appel, il faut donc faire précéder leurs nom par "es.", par exemple es.LireFichier, es.EcrireFichier ... etc

Ecriture des chemins

Utilisation du /

La plupart des méthodes de la librairie prennent en paramètre une chaine de caractères représentant le chemin d'un fichier ou d'un répertoire. Dans cette chaine de caractères, il faudra utiliser le caractère '/' pour séparer les répertoires même si vous vous trouvez sous Windows.

Répertoire par défaut

Si aucun chemin n'est précisé, la JVM ira chercher le fichier dans le répertoire du projet en cours d'exécution. C'est le répertoire par défaut.

Tous les chemins relatifs seront définis par rapport à ce répertoire.

Le chemin relatif du répertoire par défaut est représenté par la chaine de caractères "."

Traitement des IOExceptions

Les appels des fonctions de lecture de fichiers ou d'écriture de fichiers peuvent provoquer des exceptions du type IOException et doivent obligatoirement être protégés par une structure de contrôle try ... catch. Rappelons que pour pouvoir utiliser la classe IOException, il est nécessaire d'importer le package java.io.

Lecture de fichier

La librairie comprend deux fonctions permettant de lire le contenu d'un fichier texte:

LireFichier

Entête de la fonction:

  String LireFichier (String c)

Cette fonction retourne une chaine de caractères contenant tous les caractères (caractères de passage à la ligne inclus) du fichier dont le chemin c est précisé.

Exemple d'utilisation: voir l'exemple de projet illustrant l'utilisation des barres d'outils.

LireFichierLigneParLigne

Entête de la fonction:

  String[] LireFichierLigneParLigne (String c)

Cette fonction retourne un tableau de chaine de caractères dans lequel chaque élément contient une ligne du fichier (caractère de saut de ligne exclu). Donc si vous affectez par exemple le résultat à un tableau T, vous récupérez la première ligne du fichier dans T[0], la deuxième dans T[1], etc ..

Ecriture de fichier

Vous disposez également de deux procédures permettant d'enregistrer du texte dans un fichier texte:

EcrireFichier

Entête de la procédure:

  void EcrireFichier (String c, String cf)

Enregistre la chaine de caractère c dans le fichier de chemin cf. Ce fichier sera donc créé s'il n'existe pas auparavant et sinon son contenu précédant sera remplacé par la chaine de caractères c. Pour obtenir un passage à la ligne dans le fichier, il faudra insérer un caractère de saut de ligne à l'endroit correspondant. Ce caractère se note \n en Java.

Exemple d'utilisation: voir l'exemple de projet illustrant l'utilisation des barres d'outils.

EcrireFichierLigneParLigne

Entête de la procédure:

  void EcrireFichierLigneParLigne (String [] T, String c)

Cette procédure enregistre chaque élément du tableau T dans une ligne du fichier de chemin c. La valeur de T[0] sera donc la première ligne du fichier, celle de T[1], la deuxième, etc ... L'écriture s'arrête au dernier élément du tableau ou dès qu'un élément de valeur null est rencontré.

Liste de fichier

La fonction ListeFichier permet de connaitre le contenu d'un répertoire (nom des fichiers et sous-répertoires). Voici son entête:

   String [] ListeFichier(String c)

Le résultat retourné par la fonction est un tableau de chaines de caractères. Chaque élément de ce tableau contient le nom d'un fichier ou d'un sous-répertoire du répertoire dont le chemin est c. Ces noms sont rangés dans l'ordre alphabétique croissant.

Exemple d'utilisation: voir la procédure ConstruireListeImage dans le projet servant à illustrer le multi-fenetrage.

Divers

NomFichierSansExtension
   String NomFichierSansExtension(String c)

Retourne la chaine c sans les caractères suivant la dernière occurence du ".", ce qui revient à enlever l'extension.

FichierExiste
   boolean FichierExiste(String c)

Retourne true si et seulement si il existe un fichier de chemin c.