Lister un répertoire en Java

Dès que l'on parle de fichiers en Java, il est nécessaire d'importer le package java.io.File. Nous importerons aussi le package javax.swing.JOptionPane, pour pouvoir utiliser la classe qui gèrera les boîtes de dialogue.

Le principe est simple : nous demandons à travers une boîte de dialogue (showInputDialog()) un nom de répertoire, jusqu'à ce que ce dernier soit valide (méthode isDirectory()).

Une fois le nom valide, nous listons son contenu (méthode listFiles()) en le stockant dans un tableau de type File.

Puis à l'aide d'une boucle sur le tableau, nous récupérons chaque ligne du tableau en identifiant s'il s'agit d'un fichier (isFile()) ou d'un répertoire. Dans le cas d'un fichier, nous pouvons afficher sa taille en octets (.length()). Il est facile de récupérer le nom de l'élément grâce à la méthode getName().

Saisie du nom de répertoire

Maintenant la grande question : pourquoi un StringBuffer ? Et bien, en Java, lorsqu'on utilise l'opérateur += pour concaténer deux chaînes, une instance de StringBuffer est créée.

Par exemple, si on a une String a = "a" et une String b = "b", lors de l'opération a += b, le compilateur va l'interpréter sous la forme a = new StringBuffer(a).append(b).

La conséquence est que si vous utilisez a += b dans une boucle, à chaque itération un nouveau StringBuffer sera instancié; or le StringBuffer est très coûteux en mémoire. L'affichage d'un StringBuffer peut se faire simplement grâce à la méthode toString().

Bon Java !