Java文件处理、I/O与网络编程
1. 非阻塞I/O与目录搜索
1.1 非阻塞I/O
非阻塞多路复用技术在编写需要高可扩展性的高级应用程序时非常有用。支持此功能的类位于 java.nio.channels
包中,包括 SelectableChannel
和 Selector
。不过,这些高级功能的详细讨论暂不展开,通常非阻塞API仅适用于对高性能或其他非功能需求有要求的高级用例。
1.2 目录监视服务
目录监视服务可以观察目录内发生的所有事件,如文件的创建或修改。以下是一个简单的示例代码:
try {
var watcher = FileSystems.getDefault().newWatchService();
var dir = FileSystems.getDefault().getPath("/home/ben");
dir.register(watcher,
StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_MODIFY,
StandardWatchEventKinds.ENTRY_DELETE);
while(!shutdown) {
WatchKey key = watcher.take();
for (WatchEvent<?> even