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
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.
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 "."
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.
La librairie comprend deux fonctions permettant de lire le contenu d'un fichier texte:
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.
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 ..
Vous disposez également de deux procédures permettant d'enregistrer du texte dans un fichier texte:
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.
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é.
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.
String NomFichierSansExtension(String c)
Retourne la chaine c sans les caractères suivant la dernière occurence du ".", ce qui revient à enlever l'extension.
boolean FichierExiste(String c)
Retourne true si et seulement si il existe un fichier de chemin c.