Hm, true. I'm unsure of a particular way to tell if there is data inside the input buffer except maybe through the InputStream of System.in.
That is, check to see if System.in.available() returns some positive number of bytes, if it does, then something is in the input stream and you should read a Line, otherwise you are fine. (I've never done this nor do I know if the behavior is really like this, but reading the API it sounds like it)
Another method could be a simple check. We can assume that no person can write an entire word under .001 miliseconds (or whatever threashold you want to use) and so if you get input during that threshold you know that the user is cheating the system and you can just reopen the stream and allow the user to enter data then.
(This is the assumption that your readLine uses System.in. Since you are using a custom class, it is hard to tell.)
EDIT: As an additional thought, if you are using a pure InputStream you could possibly mark the beginning of the stream when you open it and then reset to that mark when the timer is up. This might work, but once again I haven't tried it. All API possibilities here: