`
HongCheng
  • 浏览: 26135 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

NIO2.0文件监听

    博客分类:
  • JDK7
阅读更多
import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
import static java.nio.file.StandardWatchEventKinds.OVERFLOW;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;

/*
* 文件监听
*
* 实现流程如下:
*
*1.为文件系统创建一个WatchService 实例 watcher
*2.为你想监听的目录注册 watcher。注册时,要注明监听那些事件。
*3.在无限循环里面等待事件的触发。当一个事件发生时,key发出信号,并且加入到watcher的queue
* 4.从watcher的queue查找到key,你可以从中获取到文件名等相关信息
* 5.遍历key的各种事件
* 6.重置 key,重新等待事件
* 7.关闭服务
*/
public class TestIOWatchDir {
public void watchDir(String dirPath) {
try {
Path path = Paths.get(dirPath);
WatchService watcher = FileSystems.getDefault().newWatchService();
// path.register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
path.register(watcher, ENTRY_CREATE);
while (true) {
WatchKey key = watcher.take();
for (WatchEvent<?> event : key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
if (kind == OVERFLOW) {
continue;
}
Path filePath = (Path) event.context();
System.out.println(filePath);
key.reset();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
String dirPath = "D:/";
new TestIOWatchDir().watchDir(dirPath);
}

}

备注:参考的相关资源来源于网络ITEYE
分享到:
评论

相关推荐

    JDK7新特性(完整篇)

    1.4 JDK7新特性&lt;四&gt; NIO2.0 文件系统 . . . 1.5 JDK7新特性&lt;五&gt; fork/join 框架 . . . . . 1.6 JDK7新特性&lt;六&gt; 监听文件系统的更改 1.7 JDK7新特性&lt;七&gt; 遍历文件树 . . . . . . . 1.8 JDK7新特性&lt;八&gt;异步io/AIO ...

    NIO网络通讯编程

    8. NIO 2.0(New I/O 2.0,Java 7引入):在Java 7中,NIO得到了进一步增强,增加了Asynchronous Channel Group和AsynchronousSocketChannel等异步I/O功能,使得开发者能够更加方便地编写高性能的并发程序。...

    NIO.2 入门,第 2 部分: 文件系统 API

    在Java的NIO.2(New IO 2.0)框架中,文件系统API提供了更加高效和灵活的方式来处理文件和目录。本篇我们将深入探讨NIO.2中的几个关键概念和类,包括`Files`, `Path`, `FileAttributes`, `DirectoryWatcher`以及`...

    异步输入/输出aio.doc

    Java NIO 2.0,也称为New I/O 2.0或NIO 2,引入了对异步I/O的支持,特别是在文件和网络I/O方面。在Java中,异步I/O的核心类和接口如下: 1. `AsynchronousChannel`:标记一个通道支持异步IO操作。 2. `...

    Scalable IO in Java

    Java NIO.2,也称为NIO 2.0或Java 7的File API,增强了文件I/O功能,包括异步文件操作、路径API和文件属性查询等。AsynchronousFileChannel使得文件操作可以在后台线程中进行,不会阻塞主线程,非常适合大规模文件...

    通过Socket传送文件的例子

    为了提高效率和可靠性,还可以考虑使用非阻塞I/O(NIO)或者异步I/O(AIO)进行优化。 总之,Socket编程是实现客户端和服务器之间通信的基础,通过它可以实现文件的高效传输。实际应用中,根据具体需求,可以对上述...

    java源码:基于MVC的Java资源管理器 v2.0.rar

    通过分析和学习这个项目,开发者不仅可以了解如何在Java中实现MVC,还可以学习到文件系统的API使用,如`java.io`和`java.nio`包中的类。此外,对于Swing组件的使用和事件处理也是提升GUI编程技能的好机会。 总的来...

    Mina2.0框架源码剖析

    在MinaTimeServer.java 文件中,我们看到了一个简单的MINA服务器端实现,它监听TCP连接并发送当前时间给客户端。以下是关键知识点的详细解释: 1. **IoAcceptor**: IoAcceptor 是MINA框架中的核心组件,用于监听和...

    J2SE 6.0 API 中文文档chm

    8. **Java 6的其他特性**:除了Swing之外,Java 6还包括动态语言支持(JSR 223)、改进的并发API(如ConcurrentHashMap)、新的异常链机制、改进的JDBC 4.0、NIO 2.0等。这些都是Java 6的重要组成部分,开发者需要...

    java API 1.7

    NIO.2提供了文件通道、异步I/O操作、文件系统查询以及更好的文件事件监听等特性,使开发者能够编写更高效、更灵活的I/O代码。 2. **try-with-resources语句**: 这个新特性允许在try语句块中声明资源,如文件或...

    JAVA上百实例源码以及开源项目

     Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。 Java绘制图片火焰效果 1个目标文件 摘要:Java源码,图形操作,火焰...

    JDK1.6-6u45

    4. **NIO.2文件系统API**:JDK 1.6引入了NIO.2,提供了一套全新的、更强大的文件操作API,包括异步文件操作、文件属性查询和文件遍历等。 5. **改进的垃圾回收机制**:此版本优化了垃圾收集器,提高了内存管理效率...

    Tomcat 5.5.27

    Tomcat 5.5.27的版本特性包括对Servlet 2.4和JSP 2.0规范的支持,这意味着开发者可以利用这些版本中的新特性,如过滤器(Filter)、监听器(Listener)和表达式语言(EL)。过滤器允许我们在请求处理过程中添加...

    J2SE6.0_CN.rar_j2se 6.0下载_j2se api chm 6.0_j2se6 a_j2se6 api_jav

    3. **NIO.2(New I/O API)**:引入了新的 NIO 模块,提供了异步文件操作和文件系统事件通知,使得处理大量I/O操作更为高效。 4. **改进的 JDBC 4.0**:JDBC 4.0 提供了自动连接管理、统一的异常处理以及对 Java ...

    有关jdk1.7的压缩包,解压后可以直接使用

    1. **NIO.2 (New IO 2.0)**:引入了更强大的文件系统API,提供了更好的异步I/O操作和文件属性查询功能。 2. **Path API**:提供了对文件路径的统一处理,兼容各种操作系统。 3. **WatchService**:允许程序监听文件...

    java api规范

    4. **NIO.2**:Java 6引入了NIO(New Input/Output)的升级版——NIO.2,提供了更好的文件系统访问能力,包括异步I/O操作、文件路径、文件属性和文件观察者等功能。 5. **Swing增强**:对Swing组件库进行了改进,...

    tomcat 5.0.28 安装版

    4. **服务与端口**:Tomcat默认监听8080端口,但可以通过修改conf/server.xml文件中的Connector元素来更改。同时,可以设置Tomcat作为Windows服务,以便在系统启动时自动运行。 5. **目录结构**:Tomcat的目录结构...

    tomcat 5.0.rar

    默认情况下,Tomcat监听8080端口,但可以通过修改配置文件更改。 8. **性能优化**:Tomcat 5.0提供多种优化选项,如调整线程池大小、开启或关闭JVM内存的预分配、使用NIO而非BIO连接器等,以适应不同规模的应用场景...

    JDK6.0 中文文档

    4. **NIO.2(New I/O 2)**:引入了java.nio.file包,提供了新的文件I/O API,支持文件系统操作,如遍历目录、文件属性查询和异步I/O。 5. **JavaScript集成(Scripting Engines)**:JDK 6.0添加了对脚本语言的...

    jdk-6u45-windows-i586.rar

    4. **NIO.2**:引入了新的非阻塞I/O API,也称为“New I/O 2”,增加了对文件系统事件监听的支持,提高了I/O操作的效率。 5. **JMX增强**:Java Management Extensions(JMX)得到了增强,使得远程管理和监控Java...

Global site tag (gtag.js) - Google Analytics