Surveillance des modifications de fichiers avec Java
La détection des modifications de fichiers dans un système est une tâche importante pour diverses applications. Cependant, la simple interrogation de la propriété lastModified d'un fichier n'est pas une solution optimale en raison de ses implications en termes de performances.
Heureusement, Java 7 a introduit l'API WatchService dans le cadre de NIO.2, spécialement conçue pour informer les applications en cas de modification de fichier. événements. Cette API offre un moyen plus efficace et plus fiable de surveiller les fichiers.
En utilisant WatchService, vous pouvez enregistrer un répertoire auprès de l'instance WatchService et spécifier les types d'événements dont vous souhaitez être informé, tels que la création de fichiers, suppression ou modification. Lorsqu'un événement qualifiant se produit, WatchService réveille le thread qui écoute ces événements et fournit des informations sur le fichier qui a changé.
Voici un exemple d'utilisation de WatchService :
Path dir = Paths.get("/path/to/directory"); WatchService watchService = FileSystems.getDefault().newWatchService(); WatchKey key = dir.register(watchService, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE); // Start a thread to listen for events ExecutorService executorService = Executors.newSingleThreadExecutor(); executorService.submit(() -> { try { for (;;) { WatchKey keyFromPoll = watchService.take(); for (WatchEvent<?> event : keyFromPoll.pollEvents()) { System.out.println("Event occurred: " + event.kind()); System.out.println("Context (file affected): " + event.context()); } keyFromPoll.reset(); } } catch (InterruptedException e) { System.err.println("Error: " + e.getMessage()); } });
Ce code enregistre un répertoire auprès de WatchService et démarre un thread pour écouter en permanence les événements de modification de fichier. Lorsqu'un événement se produit, le thread se réveille, récupère les informations sur le fichier concerné et les imprime sur la console.
En tirant parti de WatchService, vous pouvez surveiller efficacement les modifications de fichiers de manière réactive et efficace, sans compromettre les performances. frais généraux associés aux sondages.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!