package com.ssh.config; import java.io.IOException; 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; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class ResourceListener { private static ExecutorService fixedThreadPool = Executors.newFixedThreadPool(5); private WatchService ws; private String listenerPath; private ResourceListener(String path) { try { ws = FileSystems.getDefault().newWatchService(); this.listenerPath = path; start(); } catch (IOException e) { e.printStackTrace(); } } private void start() { fixedThreadPool.execute(new Listner(ws,this.listenerPath)); } public static void addListener(String path) throws IOException { ResourceListener resourceListener = new ResourceListener(path); Path p = Paths.get(path); p.register(resourceListener.ws,StandardWatchEventKinds.ENTRY_MODIFY, StandardWatchEventKinds.ENTRY_DELETE, StandardWatchEventKinds.ENTRY_CREATE); } public static void main(String[] args) throws IOException { ResourceListener.addListener("E:/aaa"); } } class Listner implements Runnable { private WatchService service; private String rootPath; public Listner(WatchService service,String rootPath) { this.service = service; this.rootPath = rootPath; } public void run() { try { while(true){ WatchKey watchKey = service.take(); List<WatchEvent<?>> watchEvents = watchKey.pollEvents(); for(WatchEvent<?> event : watchEvents){ //TODO 根据事件类型采取不同的操作。。。。。。。 System.out.println("["+rootPath+"/"+event.context()+"]文件发生了["+event.kind()+"]事件"); } watchKey.reset(); } } catch (InterruptedException e) { e.printStackTrace(); }finally{ System.out.println("fdsfsdf"); try { service.close(); } catch (IOException e) { e.printStackTrace(); } } } }
相关推荐
Java中的`WatchService`是一个强大的工具,用于监听文件系统中的事件,例如文件的创建、修改或删除。在Java 7及以上版本中引入,它提供了一种有效的方式来进行实时监控,而无需频繁轮询文件系统,这极大地提高了效率...
* 测试JDK的WatchService监听文件变化 * @author yangzhilong */ public class TestWatchService { public static void main(String[] args) throws IOException { // 需要监听的文件目录(只能监听目录) String...
用java8实现一个文件目录的监听,目录中文件创建、修改、删除等操作
WatchService提供了一个机制,允许应用程序监听指定目录下的文件和子目录的变化,例如文件的创建、修改和删除。 首先,你需要通过`FileSystems.getDefault().newWatchService()`获取一个WatchService实例。这个服务...
Java提供了一种称为`WatchService`的机制,它允许程序监听指定目录下的文件系统事件。通过`java.nio.file.FileSystems`和`java.nio.file.Path`类,我们可以创建并注册一个观察服务。以下是一个简单的示例: ```java...
首先,文件监听是通过文件系统观察者(File System Watcher)API来实现的,这个API在Java 7中被引入。Spring Boot项目可以利用Java的`java.nio.file.FileSystems`和`java.nio.file.Path`类来创建一个观察者,监听...
4. **文件系统监控**:利用FileObserver或WatchService监听USB设备目录,捕获文件变化。 5. **后台服务**:创建并管理后台服务,使得程序能在用户无感知的情况下持续运行。 6. **权限控制**:适当地设置程序的权限,...
在任务中首先创建一个WatchService实例,将path路径注册到WatchService并监听文件创建(ENTRY_CREATE)事件。然后使用一个无限循环,每次循环中使用WatchService的take方法阻塞等待文件变化事件的发生。 在获取到...
在Java编程中,`WatchService` 是一个强大的工具,它允许开发者监听文件系统中的特定事件,如文件或目录的创建、修改和删除。这个功能在处理实时数据更新、日志跟踪或其他需要监视文件系统变动的场景中非常有用。在...
首先,Java提供了`java.nio.file`包,其中的`WatchService`接口为我们提供了文件系统事件的通知机制。下面我们将一步步讲解如何使用`WatchService`来实现文件变更监控。 1. **注册监听器**: 首先,我们需要创建一...
首先,Java中并没有内置的API直接支持文件系统的监听,但我们可以利用`java.nio.file`包中的`WatchService`接口来实现这一功能。`WatchService`提供了一个观察文件系统事件的机制,例如创建、删除、修改文件或目录。...
在Java 7及以上版本中,`java.nio.file`包提供了`WatchService`接口,用于实现这一功能。开发者可以通过`Files.newWatchService()`方法获取一个`WatchService`实例,然后调用`Path.register()`方法来为指定路径注册...
JDK7引入了`WatchService`接口,为开发者提供了一种监听文件系统变化的能力。然而,`WatchService`的原生API较为复杂,使用起来并不直观。针对这一问题,出现了`FileMonitor`,它封装了`WatchService`,简化了文件...
- `WatchService`是Java中用来监听文件系统事件的核心接口。通过调用`FileSystem.newWatchService()`方法获取实例。 2. **WatchKey和Watchable**: - `WatchKey`代表了对某个文件或目录的监听注册,由`...
总的来说,Java的`WatchService`为开发者提供了一种有效的方式去监控文件系统的动态,而剪贴板的监听则需要借助额外的库或系统API。通过合理的编程和事件处理,我们可以构建出一个能够满足特定需求的文件监控系统。
这可以通过文件系统的监听器(如Java的WatchService API)来实现。 2. **文件传输**:文件的传输通常采用TCP/IP协议,通过Socket建立连接,然后利用输入输出流读取和写入文件内容。为了提高效率,可以使用断点续传...
Java JRE7引入了NIO.2(New I/O 2)框架,显著改进了对文件系统操作的支持,其中最重要的增强之一就是引入了WatchService服务。这个服务允许程序以一种高效且优雅的方式监控文件或目录的变化,而无需像JRE6之前那样...
文件同步代码通常涉及到文件复制、文件夹监控以及各种API的使用,如Java 7中的`WatchService`和第三方库如`jnotify`。下面将详细介绍这些知识点。 **文件复制操作** 文件复制是一个基础但关键的功能,用于在不同的...
Java中可以使用`java.nio.file.WatchService` API来监听文件系统的变化,当检测到配置文件有改动时,触发重新加载。 3. **配置文件加载库**:许多第三方库提供了配置文件的动态加载功能,例如Spring Framework的`...
Java 7引入了文件系统观察服务 `WatchService`,允许程序监听文件系统事件,如文件创建、修改和删除。 10. **流的关闭** 为了防止资源泄漏,完成文件操作后,记得关闭打开的流。通常使用 `try-with-resources` ...