You may want to take a look at
RandomAccessFile. I don't know if this will solve your problem, especially if you are reading text a line at a time. It is difficult to know how long a line of text is without reading it in first. Random access files are usually more helpful with binary data where you can specify the size of each "record" in the data. Then you can use seek() to skip a specified number of records by doing some simple arithmetic.
With that said, why do you need to move the position of the file pointer in the stream? Would it be easier to read the whole file into a
String, (using StringBuffer or StringBuilder, of course) and then move around inside the String to the information you want? Of course, this is infeasible for very large files, but if your file is relatively small so that you can fit it all into memory, I think this would be a decent solution. Since I don't know the details of your project, I am only guessing here. If you would like to provide more information, perhaps we can suggest alternative solutions.
Keep Coding!
Layne