File changed listener in Java
I've written a log file monitor before, and I found that the impact on system performance of polling the attributes of a single file, a few times a second, is actually very small.
Java 7, as part of NIO.2 has added the WatchService API
The WatchService API is designed for applications that need to be notified about file change events.
I use the VFS API from Apache Commons, here is an example of how to monitor a file without much impact in performance:
DefaultFileMonitor