Les fichiers en Java

La classe java.io.File représente les fichiers et les noms des répertoires. Cette classe est utilisée pour la création des fichiers et les répertoires, la recherche des fichiers, la suppression, la modification, etc.

L’objet File de java représente le fichier/répertoire actuel sur le disque. 

Constructeurs de java.io.File

Les constructeurs pour créer l’objet File sont:

La syntaxe suivante crée une nouvelle instance de File à partir du chemin parent et du chemin fils.
File(File parent, String fils);

La syntaxe suivante crée une instance File en convertissant le nom de chemin abstrait.
File(String nomChemin)

La syntaxe suivante crée une instance File en convertissant l’URI en un nom de chemin abstrait.
File(URI uri)

Méthodes de java.io.File

Une fois l’objet File est crée, plusieurs méthodes qui peuvent être utilisées pour manipuler l'instance File:

Public String getName()
récupère le nom du fichier/répertoire.

Public String getParent()
Retourne les noms des chemins du parent, sinon null si le nom du chemin n’a pas un répertoire parent.

Public File getParentFile()
Retourne le nom de chemin abstrait du parent, ou null si le nom du chemin n’a pas un répertoire parent.

Public String getPath()
Convertir le nom de chemin abstrait en un le nom du chemin chaine de caractère.

Public boolean isAbsolute ()
Retourne true si le chemin est absolu.

Public String getAbsolutePath()
Retourne le chemin absolu.

Public boolean exists()
Retourne True si le fichier/répertoire existe.

Public boolean isDirectory()
Retourne True si l’objet File est un répertoire.

Public boolean isFile()
Retourne True si l’objet File est un fichier.

Public long lastModified()
Retourne la dernière date de modification en milliseconde, ou 0L si le fichier n’existe pas.

Public boolean canRead()
Retourne true si le fichier peut être lu.

Public boolean canWrite()
Retourne true si le fichier prêt à être modifié.

Public boolean createTempFile(String nom, String suffixe)
Crée un fichier temporaire par défaut.

Public boolean createNewFile() throws IOException
Crée un fichier vide automatiquement, nommé avec le nom du chemin abstrait. Elle retourne True si le fichier est créé avec succès sinon false, s’il existe un autre fichier qui porte même nom.

Public bolean delete()
Supprime le fichier ou le répertoire.

Public bolean deleteOnExit()
Supprime le fichier ou le répertoire à l’arrêt de la JVM.

Public String[] list()
obtenir une liste des noms des fichiers et des répertoires.

Public File[] listFiles()
obtenir une liste des noms de chemin abstraits des fichiers dans leur répertoire.

Public boolean mkdir()
Crée un répertoire. Retourne true si le répertoire est créé sinon false.

Public boolean renameTo(File dest)
Renomme un fichier.

Exemple

import java.io.File;

public class Test {
public static void main(String[] args) {

File fichier = null;
String[] noms = {"test1.txt", "test2"};
try{
// pour chaque case dans le tableau
for(String nom: noms)
{
// créer un nouveau fichier
fichier = new File(nom);

// true si le fichier est executable
boolean bool = fichier.canExecute();

System.out.println("Chemin absolu :" + fichier.getAbsolutePath());
System.out.println("Est-ce qu'il existe ? " + fichier.exists());
System.out.println("Nom : " + fichier.getName());
System.out.println("Est-ce un répertoire ? " + fichier.isDirectory());
System.out.println("est un executable: "+ bool);

//afficher le contenu si le fichier est un dossier
if (fichier.isDirectory() ) {
System.out.println("contenu du répertoire ");
File fichiers[] = fichier.listFiles();
//Boucle qui fait le parcours
for(File f : fichiers){
if (f.isDirectory())
System.out.println(" ["+f.getName()+"]");
else
System.out.println(" "+f.getName());
}
}
}
}catch(Exception e){
// si des erreurs Entrée/Sortie apparaissent
e.printStackTrace();
}
}
}
Sortie

Chemin absolu :C:\Users\VAIO\workspace\File\test1.txt
Est-ce qu'il existe ? true
Nom : test1.txt
Est-ce un répertoire ? false
est un executable: true

Chemin absolu :C:\Users\VAIO\workspace\File\test2
Est-ce qu'il existe ? true
Nom : test2
Est-ce un répertoire ? true
est un executable: true
contenu du répertoire
Android - Le guide ultime Www.biblio-scientifique.com.pdf
Interface graphique Java.pdf
sunset.jpg

Afficher le contenu d'un dossier en java

Cet exemple affiche les fichiers listés d'un répertoire qui est la racine. Pour obtenir le schéma de l'arbre complet, il faut créer une méthode récursive qui parcourt l'arbre en profondeur et en largeur jusqu'à un niveau prédéfini.

Iterable racine = FileSystems.getDefault().getRootDirectories();
for(Path chemin : racine)
{
System.out.println(chemin);
//pour lister un répertoire, il faut utiliser l’objet DirectoryStream
try(DirectoryStream liste = Files.newDirectoryStream(chemin,"*.txt")){
int i = 0;
for(Path nom : liste)
{
System.out.println("\t\t" + ((Files.isDirectory(nom) ? nom+"/" : nom)));
i++;
if(i%4 == 0)System.out.println("\n");
}
}
catch (IOException e) {
e.printStackTrace();
}
}
Références
jenkov: Java IO: File
jmdoudoux.fr: l'api NIO
Java Doc: Class File