Java FileSystem.newWatchService()

Syntax

FileSystem.newWatchService() has the following syntax.

public abstract WatchService newWatchService()     throws IOException

Example

In the following code shows how to use FileSystem.newWatchService() method.


/*from w  w w.j a  v a2 s. co m*/
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;

public class Main {

  public static void main(String[] args) throws Exception {

    FileSystem fileSystem = FileSystems.getDefault();
    WatchService watchService = fileSystem.newWatchService();
    Path directory = Paths.get("c:/");
    WatchEvent.Kind<?>[] events = { StandardWatchEventKinds.ENTRY_CREATE,
        StandardWatchEventKinds.ENTRY_DELETE,
        StandardWatchEventKinds.ENTRY_MODIFY };
    directory.register(watchService, events);
    while (true) {
      System.out.println("Waiting for a watch event");
      WatchKey watchKey = watchService.take();

      System.out.println("Path being watched: " + watchKey.watchable());
      System.out.println();

      if (watchKey.isValid()) {
        for (WatchEvent<?> event : watchKey.pollEvents()) {
          System.out.println("Kind: " + event.kind());
          System.out.println("Context: " + event.context());
          System.out.println("Count: " + event.count());
          System.out.println();
        }

        boolean valid = watchKey.reset();
        if (!valid) {
          // The watchKey is not longer registered
        }
      }
    }

  }
}

The code above generates the following result.





















Home »
  Java Tutorial »
    java.nio.file »




DirectoryStream.Filter
Files
FileStore
FileSystem
FileVisitor
Path
Paths
WatchService