本文整理了Java中java.nio.file.WatchKey.pollEvents()
方法的一些代码示例,展示了WatchKey.pollEvents()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。WatchKey.pollEvents()
方法的具体详情如下:
包路径:java.nio.file.WatchKey
类名称:WatchKey
方法名:pollEvents
WatchKey.pollEvents介绍
暂无
代码示例
代码示例来源:origin: syncany/syncany
@Override
protected boolean pollEvents() throws InterruptedException {
// Take events, but don't care what they are!
WatchKey watchKey = watchService.take();
watchKey.pollEvents();
watchKey.reset();
// Events are always relevant; ignored paths are not monitored
return true;
}
代码示例来源:origin: konsoletyper/teavm
private boolean filter(WatchKey key) throws IOException {
boolean hasNew = false;
for (WatchEvent> event : key.pollEvents()) {
List paths = filter(key, event);
if (!paths.isEmpty()) {
changedFiles.addAll(paths.stream().map(Path::toFile).collect(Collectors.toList()));
hasNew = true;
}
}
key.reset();
return hasNew;
}
代码示例来源:origin: lets-blade/blade
public void processEvent(BiConsumer, Path> processor){
for(;;){
WatchKey key;
try{
key = watcher.take();
}catch (InterruptedException e) {
return;
}
Path dir = pathMap.get(key);
for (WatchEvent> event: key.pollEvents()){
WatchEvent.Kind kind = event.kind();
Path filePath = dir.resolve(((WatchEvent)event).context());
if(Files.isDirectory(filePath)) continue;
log.info("File {} changes detected!",filePath.toString());
//copy updated files to target
processor.accept(kind, filePath);
}
key.reset();
}
}
代码示例来源:origin: lets-blade/blade
public void processEvent(BiConsumer, Path> processor){
for(;;){
WatchKey key;
try{
key = watcher.take();
}catch (InterruptedException e) {
return;
}
Path dir = pathMap.get(key);
for (WatchEvent> event: key.pollEvents()){
WatchEvent.Kind kind = event.kind();
Path filePath = dir.resolve(((WatchEvent)event).context());
if(Files.isDirectory(filePath)) continue;
log.info("File {} changes detected!",filePath.toString());
//copy updated files to target
processor.accept(kind, filePath);
}
key.reset();
}
}
代码示例来源:origin: dreamhead/moco
private void loop() {
try {
WatchKey key = service.take();
Collection paths = keys.get(key);
for (WatchEvent> event : from(key.pollEvents()).filter(isModifyEvent())) {
final Path cOntext= (Path) event.context();
for (Path path : from(paths).filter(isForPath(context))) {
for (Function listener : this.listeners.get(path)) {
listener.apply(path.toFile());
}
break;
}
}
key.reset();
} catch (ClosedWatchServiceException ignored) {
} catch (InterruptedException e) {
logger.error("Error happens", e);
}
}
代码示例来源:origin: stackoverflow.com
final Path path = FileSystems.getDefault().getPath(System.getProperty("user.home"), "Desktop");
System.out.println(path);
try (final WatchService watchService = FileSystems.getDefault().newWatchService()) {
final WatchKey watchKey = path.register(watchService, StandardWatchEventKinds.ENTRY_MODIFY);
while (true) {
final WatchKey wk = watchService.take();
for (WatchEvent> event : wk.pollEvents()) {
//we only register "ENTRY_MODIFY" so the context is always a Path.
final Path changed = (Path) event.context();
System.out.println(changed);
if (changed.endsWith("myFile.txt")) {
System.out.println("My file has changed");
}
}
// reset the key
boolean valid = wk.reset();
if (!valid) {
System.out.println("Key has been unregisterede");
}
}
}
代码示例来源:origin: apache/zookeeper
for (WatchEvent> event : key.pollEvents()) {
if (LOG.isDebugEnabled()) {
LOG.debug("Got file changed event: " + event.kind() + " with context: " + event.context());
boolean isKeyValid = key.reset();
if (!isKeyValid) {
代码示例来源:origin: apache/zeppelin
continue;
for (WatchEvent> event : key.pollEvents()) {
WatchEvent.Kind> kind = event.kind();
if (kind == OVERFLOW) {
boolean valid = key.reset();
if (!valid) {
break;
代码示例来源:origin: neo4j/neo4j
@Override
public void startWatching() throws InterruptedException
{
watch = true;
while ( watch )
{
WatchKey key = watchService.take();
if ( key != null )
{
List> watchEvents = key.pollEvents();
for ( WatchEvent> watchEvent : watchEvents )
{
WatchEvent.Kind> kind = watchEvent.kind();
if ( StandardWatchEventKinds.ENTRY_MODIFY == kind )
{
notifyAboutModification( watchEvent );
}
if ( StandardWatchEventKinds.ENTRY_DELETE == kind )
{
notifyAboutDeletion( watchEvent );
}
}
key.reset();
}
}
}
代码示例来源:origin: jersey/jersey
for (WatchEvent> event : watchKey.pollEvents()) {
final WatchEvent.Kind> kind = event.kind();
if (kind == StandardWatchEventKinds.ENTRY_MODIFY) {
watchKey.reset(); // so that consecutive events could be processed
代码示例来源:origin: ivan-vasilev/neuralnetworks
List> watchEvents = watchKey.pollEvents();
for (WatchEvent> we : watchEvents)
if (!watchKey.reset())
代码示例来源:origin: oracle/helidon
break;
List> events = key.pollEvents();
events.stream()
.filter(e -> FilesystemWatchPollingStrategy.this.path.endsWith((Path) e.context()))
.forEach(FilesystemWatchPollingStrategy.this::fireEvent);
if (!key.reset()) {
fail = true;
LOGGER.log(Level.FINE, () -> "Directory '" + dir + "' is no more valid to be watched.");
代码示例来源:origin: apache/nifi
for (WatchEvent> event : key.pollEvents()) {
final WatchEvent.Kind> kind = event.kind();
if (kind == StandardWatchEventKinds.OVERFLOW) {
final boolean valid = key.reset();
if (!valid) {
LOGGER.error("NAR auto-load directory is no longer valid");
代码示例来源:origin: lets-blade/blade
for (WatchEvent> watchEvent : key.pollEvents()) {
final WatchEvent.Kind> kind = watchEvent.kind();
if (kind == StandardWatchEventKinds.OVERFLOW) {
boolean valid = key.reset();
代码示例来源:origin: oracle/opengrok
for (WatchEvent> event : key.pollEvents()) {
final WatchEvent.Kind> kind = event.kind();
if (!key.reset()) {
break;
代码示例来源:origin: lets-blade/blade
for (WatchEvent> watchEvent : key.pollEvents()) {
final WatchEvent.Kind> kind = watchEvent.kind();
if (kind == StandardWatchEventKinds.OVERFLOW) {
boolean valid = key.reset();
代码示例来源:origin: ninjaframework/ninja
for (WatchEvent> watchEvent : watchKey.pollEvents()) {
WatchEvent.Kind watchEventKind = watchEvent.kind();
boolean valid = watchKey.reset();
if (!valid) {
mapOfWatchKeysToPaths.remove(watchKey);
代码示例来源:origin: jooby-project/jooby
for (WatchEvent> event : key.pollEvents()) {
Kind> kind = event.kind();
boolean valid = key.reset();
if (!valid) {
keys.remove(key);
代码示例来源:origin: jooby-project/jooby
for (WatchEvent> event : key.pollEvents()) {
Kind> kind = event.kind();
boolean valid = key.reset();
if (!valid) {
keys.remove(key);
代码示例来源:origin: spring-cloud/spring-cloud-config
for (WatchEvent> event : key.pollEvents()) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE
|| event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) {
key.reset();
key = this.watcher.poll();