Introduction
De nombreuses applications gĂ©rent des fichiers d’une maniĂšre et d’une autre manipulation est l’une des tĂąches de base Connaissances dans tout langage de programmation.
manipuler des fichiers, nous devons savoir oĂč ils se trouvent. Avoir une description gĂ©nĂ©rale des fichiers d’un rĂ©pertoire est primordial si nous voulons y parvenir, surtout si nous pouvons effectuer des opĂ©rations dans une itĂ©ration. Il y a plusieurs façons de le faire en Java, que nous montrerons tout au long de cet article.
Pour la simplicitĂ©, tous les exemples seront Ă©crits pour l’arborescence de fichier suivant:
Programming|-- minimax.c|-- super_hack.py|-- TODO.txt`-- CodingMusic |-- Girl Talk - All Day.mp3 |-- Celldweller - Frozen.mp3 |-- Lim Taylor - Isn't It Wonderful.mp3 `-- Radiohead - Everything in Its Right Place.mp3
fichier.list ()
La méthode la plus simple permettant de répertorier les noms de fichiers et les dossiers dans un répertoire donné, sans passer par les sous-répertoires, est la méthode auxiliaire. .list()
, qui renvoie une matrice de String
s.
Nous faisons cela Ă l’aide de .list()
méthode dans un File
Exemple:
Utilisation d’une boucle simple , humide Ă travers la matrice et imprimez le String
s.
CodingMusicminimax.csuper_hack.pyTODO.txt
avec cette approche, tous les éléments de la CodingMusic
ne sont pas affichĂ©s et un inconvĂ©nient de cette approche est que nous ne pouvons pas vraiment faire quoi que ce soit avec les fichiers lui-mĂȘme. Nous n’obtenons que leurs noms. Il est utile lorsque nous voulons seulement examiner les fichiers au bas de la lettre.
FilenamFilter
Une autre chose que nous pouvons faire avec le .list()
La méthode consiste à créer un FilenameFilter
pour renvoyer uniquement les fichiers que nous souhaitons:
File f = new File("D:/Programming");// This filter will only include files ending with .pyFilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File f, String name) { return name.endsWith(".py"); } };// This is how to apply the filterpathnames = f.list(filter);
Exécutez ce fragment de code, il produirait:
fichier.listfiles ()
similaire Ă la mĂ©thode prĂ©cĂ©dente, cela peut ĂȘtre utilisĂ©. Pour revenir les noms de fichiers et les rĂ©pertoires, mais cette fois, nous les obtenons comme une matrice de File
objets, ce qui nous donne la possibilité de les manipuler directement:
public class Pathnames { public static void main(String args) { // try-catch block to handle exceptions try { File f = new File("D:/Programming"); FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File f, String name) { // We want to find only .c files return name.endsWith(".c"); } }; // Note that this time we are using a File class as an array, // instead of String File files = f.listFiles(filter); // Get the names of the files by using the .getName() method for (int i = 0; i < files.length; i++) { System.out.println(files.getName()); } } catch (Exception e) { System.err.println(e.getMessage()); } }}
sortie:
minimax.c
Maintenant, passons dans le systĂšme de fichiers Ă l’aide de la rĂ©cursivitĂ© et d’autres mĂ©thodes Ă utiliser dans le File
Object:
sortie:
Girl Talk - All Day.mp3 (size in bytes: 8017524)Celldweller - Frozen.mp3 (size in bytes: 12651325)Lim Taylor - Isn't It Wonderful.mp3 (size in bytes: 6352489)Radiohead - Everything in Its Right Place.mp3 (size in bytes: 170876098)minimax.c (size in bytes: 20662)super_hack.py (size in bytes: 114401)TODO.txt (size in bytes: 998)
fichiers.walk ()
en Java 8 et présentation constrons-nous utiliser la classe ID = « 7bc9e87bbb »> la classe pour remplir un Stream
et utilisez-le pour voyager des fichiers et des rĂ©pertoires, en mĂȘme temps via les sous-rĂ©pertoires rĂ©cursives .
Veuillez noter que dans cet exemple, nous utiliserons des expressions Lambda:
public class FilesWalk { public static void main(String args) { try (Stream<Path> walk = Files.walk(Paths.get("D:/Programming"))) { // We want to find only regular files List<String> result = walk.filter(Files::isRegularFile) .map(x -> x.toString()).collect(Collectors.toList()); result.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } }}
ici, nous avons peuplé un Stream
Ă l’aide de mĂ©thode, passant un Paths
Argument. Le Paths
La classe consiste en des méthodes statiques qui renvoient une Path
en fonction d’une chaĂźne URI et d’utiliser un Path
, nous pouvons localiser le fichier facilement.
the Path
, Paths
, java.nio
, qui a été introduit dans Java 7 comme moyen plus moderne de représenter des fichiers sans blocage.
Ensuite, Ă l’aide du cadre de collecte, une liste est gĂ©nĂ©rĂ©e.
Exécuter ce fragment de code produira:
CONCLUSION
Gestion de fichiers est une tĂąche centrale pour la plupart des langages de programmation, ce qui inclut la possibilitĂ© de rĂ©pertorier et de trouver des fichiers dans le systĂšme de fichiers. Pour manipuler des fichiers, nous devons savoir oĂč ils se trouvent. Avoir une description gĂ©nĂ©rale des fichiers d’un rĂ©pertoire est primordiale si nous voulons y parvenir, surtout si nous pouvons effectuer des opĂ©rations sur eux via l’itĂ©ration.
Dans cet article, nous montrons diffĂ©rentes maniĂšres de Java pour rĂ©pertorier les archives Dans le systĂšme de fichiers, Ă l’aide d’approches linĂ©aires et rĂ©cursives.
Ăvaluez ce message