You can try the java.io.RandomAccessFile class, which can be used to seek to the point that you want, without having to read everything all over again.
Exactly how are you positioning at the end line of previous reading?
That is not something possible with BufferedReader which would have to read the whole file, resulting in what you observe.
Also note that a Reader is going to be doing character by character conversion to UNICODE, an expensive operation.
Instead of just opening a file after a time interval, I would suggest something like checking last modified time. If file is not modified at all, there's no point in opening the file in first place.
I'm not sure which OS you are working with, but in Linux, this can simply be done by grep command. No need to even open a file using Java classes. On Windows, there might be something similar to it.