Une introduction aux fichiers en Java
Par Stella0400 • 18 Janvier 2018 • 5 697 Mots (23 Pages) • 667 Vues
...
• java.io.EOFException
• java.io.FileNotFoundException
• java.io.InterruptedIOException
• java.io.ObjectStreamException
• java.io.InvalidClassException
• java.io.InvalidObjectException
• java.io.NotActiveException
• java.io.NotSerializableException
• java.io.OptionalDataException
• java.io.StreamCorruptedException
• java.io.WriteAbortedException
• java.io.SyncFailedException
• java.io.UnsupportedEncodingException
• java.io.UTFDataFormatException
• java.io.Writer (implements java.lang.Appendable, java.io.Closeable, java.io.Flushable)
• java.io.BufferedWriter
• java.io.CharArrayWriter
• java.io.FilterWriter
• java.io.OutputStreamWriter
• java.io.FileWriter
• java.io.PipedWriter
• java.io.PrintWriter
• java.io.StringWriter
Interface Hierarchy
• java.io.Closeable
• java.io.DataInput
• java.io.ObjectInput
• java.io.DataOutput
• java.io.ObjectOutput
• java.io.FileFilter
• java.io.FilenameFilter
• java.io.Flushable
• java.io.ObjectInputValidation
• java.io.ObjectStreamConstants
• java.io.Serializable
• java.io.Externalizable
Ouf...Nous ne verrons pas le rôle de toutes ces classes, nous concentrant sur les principales.
La classe File
Il existe une classe File qui permet de recueillir des informations sur l’arborescence du disque. On pourra au moyen de cette classe consulter la liste des fichiers se trouvant dans un répertoire et en obtenir différentes propriétés. Remarquez que malgré son nom, cette classe ne permet pas de créer des fichiers ou d’en lire le contenu.
Voici un premier exemple de code mettant la classe File en vedette :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package classefilenotes;
import java.io.File;
import java.util.Scanner;
/**
*
* @author r520100
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String unChemin = input.nextLine();
litDossier(unChemin);
}
public static void litDossier(String chemin) {
File uneArborescence = new File(chemin);
if (uneArborescence.exists()) {
System.out.println(uneArborescence.getName());
if (uneArborescence.isAbsolute()) {
System.out.println("C’est un chemin absolu");
}
if (uneArborescence.isFile()) {
System.out.println("C’est un fichier");
}
if (uneArborescence.isAbsolute()) {
System.out.println("Chemin absolu");
}
System.out.println(uneArborescence.getUsableSpace());
if (uneArborescence.isDirectory()) {
System.out.println("C’est un dossier");
}
String[] unDossier = uneArborescence.list();
for (String fich : unDossier) {
System.out.println(fich);
}
}
}
}
On voit qu’on y utilise les méthodes exist(), isFile(), isDirectory(), isAbsolute(), getUsableSpace() (quiretourne l’espace libre de la partition) , getName().
Il existe d’autres fonctions de cette classe telle que canRead(), canWrite(),getAbsolutePath(), getPath(), getParent(),length() et lastModified().
Terminons en signalant qu’il existe une propriété de la classe File, path_separator qui permet de coder le caractère (\ou /) de séparation des chemins associé au système d’exploitation.
L’écriture dans un fichier texte
Voyons maintenant un programme
...