소개
파일 변경 감지는 파일 등 다양한 애플리케이션에 필수적입니다. 모니터링, 백업 시스템 및 데이터 동기화. 기존 폴링 접근 방식은 비효율적일 수 있지만 Java에는 더 최적의 솔루션을 사용할 수 있습니다.
폴링과 이벤트 기반 모니터링
폴링에는 파일의 lastModified 속성을 반복적으로 쿼리하는 작업이 포함됩니다. . 그러나 이 접근 방식은 특히 여러 파일을 모니터링할 때 리소스 집약적일 수 있습니다.
Java 7의 NIO.2 WatchService API
Java 7에서는 WatchService API를 도입했습니다. 이벤트 기반 파일 변경 감지 기능을 제공합니다. 이 API를 사용하면 개발자는 모니터링을 위해 특정 파일이나 디렉터리를 등록할 수 있으며 변경 사항이 발생하면 애플리케이션에 알립니다.
다음은 WatchService의 사용법을 보여주는 코드 조각입니다.
import java.nio.file.*; public class FileChangeListener { public static void main(String[] args) throws IOException { Path directory = Paths.get("/path/to/directory"); try (WatchService watcher = FileSystems.getDefault().newWatchService()) { directory.register(watcher, StandardWatchEventKinds.ENTRY_MODIFY); boolean keepWatching = true; while (keepWatching) { WatchKey key = watcher.take(); for (WatchEvent<?> event : key.pollEvents()) { if (event.kind() == StandardWatchEventKinds.ENTRY_MODIFY) { System.out.println("File modified: " + event.context()); } } if (!key.reset()) { keepWatching = false; } } } } }
이 코드 특정 디렉토리에 대한 감시 서비스를 설정하고 변경 사항을 수신합니다. 파일이 수정되면 메시지가 인쇄됩니다.
이벤트 기반 모니터링의 이점
이벤트 기반 파일 변경 모니터링은 폴링에 비해 여러 가지 이점을 제공합니다.
위 내용은 Java의 NIO.2 WatchService API는 어떻게 파일 변경 모니터링을 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!