Java NIO学习-详细内容(三)

九、nio.file

  该包是1.7新出的,包含了一系列高级的文件和目录操作方法

  1、控制目录属性,只读,系统之类的

  2、监控文件及文件夹的改变的WatchService

public void startWatch() throws IOException, InterruptedException {
        final FileSystem fileSystem = FileSystems.getDefault();
        try (final WatchService watchService = fileSystem.newWatchService()) {
            final Map<WatchKey, Path> keyMap = new HashMap<WatchKey, Path>();
            final Path path = Paths.get(watchFolder);
            keyMap.put(path.register(watchService, ENTRY_CREATE),path);
            WatchKey watchKey;
            do {
                watchKey = watchService.take();
                final Path eventDir = keyMap.get(watchKey);
                for (final WatchEvent<?> event : watchKey.pollEvents()) {
                    final Kind<?> kind = event.kind();
                    final Path eventPath = (Path) event.context();
                    System.out.println(event.kind() + ": " + eventDir + "\\" + event.context());
                    Thread.sleep(500);
                    if(kind == ENTRY_CREATE)    //创建文件且后缀不是.uploaded
                        this.put(eventPath.toString());
                }
            } while (watchKey.reset());
        }
    }

  及其他

posted @ 2015-10-16 11:32  光闪  阅读(193)  评论(0编辑  收藏  举报