자바 시계 예제

다음은 이벤트 처리 루프의 예입니다. 디렉터리를 보고 새 파일이 나타날 때까지 기다리는 전자 메일 예제에서 가져온 것입니다. 새 파일을 사용할 수 있게 되면 probeContentType(Path) 메서드를 사용하여 텍스트/일반 파일인지 여부를 검사합니다. 의도는 텍스트 / 일반 파일이 별칭으로 전자 메일로 전송되지만 구현 세부 사항은 판독기에게 남습니다. 또한 항상 그렇듯이 이 문서에서 사용되는 예제의 전체 소스 코드는 Github 프로젝트에서 사용할 수 있습니다. 아파치는 doonChange 방법을 사용하여 FileWatchDog 클래스를 제공합니다. FileWatchDog 클래스는 파일의 마지막수정() 타임스탬프를 폴러합니다. Java NIO의 기본 WatchService는 알림이 즉각적이기 때문에 더 효율적입니다. 파일 이름은 이벤트 컨텍스트에서 검색됩니다. Email 예제에서는 이 코드로 파일 이름을 검색합니다. 시계 키와 디렉터리 맵 키의 맵을 유지관리하여 수정된 디렉터리를 올바르게 식별합니다. 다른 사람에 대해 확실하지 않지만 기본 WatchService API를 사용하여 변경 내용을 보려면 단일 파일을 보는 데 필요한 코드의 양에 신음합니다.

그것은 간단해야합니다! 다음은 watch 이벤트 예제의 전체 코드입니다. Watch Service API는 파일 변경 이벤트에 대해 알림을 받아야 하는 응용 프로그램을 위해 설계되었습니다. 편집기 나 IDE와 같은 모든 응용 프로그램에 적합하며 잠재적으로 열려있는 파일이 많고 파일이 파일 시스템과 동기화되도록해야합니다. 또한 디렉터리(.jsp 또는 .jar 파일)가 삭제되기를 기다리는 디렉터리를 감시하는 응용 프로그램 서버에도 적합합니다. 전자 메일 예제를 컴파일할 때 이벤트를 처리하는 논리와 함께 위의 모든 것을 함께 배치하면 다음과 같은 오류가 발생합니다. 시간(Java 7 릴리스: 2011년 7월 28일) 시계 이벤트는 종류별로 분류됩니다. kind() 메서드는 WatchEvent.Kind 인터페이스에 의해 정의된 이벤트 종류(식별자)를 반환합니다. StandardWatchEventKind 클래스는 표준 이벤트 종류를 정의합니다. 이 프로그램은 윈도우 7 운영 체제에서 테스트됩니다. 자바 7이 필요합니다. 아래 단계에 따라 예제 프로그램을 실행하고 결과를 관찰합니다. 다음으로 하나 이상의 객체를 시계 서비스에 등록합니다.

Watchable 인터페이스를 구현하는 모든 개체를 등록할 수 있습니다. Path 클래스는 감시 가능한 인터페이스를 구현하므로 모니터링할 각 디렉터리가 Path 개체로 등록됩니다. 그런 다음 watch 서비스를 통해 디렉터리 개체를 등록합니다. 이렇게 하려면 변경 내용을 위해 감시되는 디렉터리를 나타내는 경로 개체에 register 메서드를 호출해야 합니다. 레지스터() 메서드는 시계 서비스를 받고 스탠다드워치EventKind.ENTRY_CREATE, 스탠다드워치EventKind.ENTRY 및 StandardWatchEventKind.ENTRY 및 StandardWatchEventKind.ENTRY와 같은 이벤트 종류를 인수로 사용하며 시계 키 개체를 참조하는 시계 키 개체를 반환합니다. 시계 서비스에 개체를 등록할 수 있습니다. Java 1.7의 WatchService를 중심으로 디렉터리 및 여러 glob 패턴을 등록 할 수있는 래퍼를 만들었습니다. 이 클래스는 필터링을 처리하고 관심 있는 이벤트만 내보합니다. WatchService는 디렉터리에서 변경사항이 변경되었을 때 프로그램에 알리는 이벤트 기반 메커니즘을 제공합니다.