i am still wondering how come java became more complicated then c language...
It's not, in Java you don't have to manage your memory manually, or worry about "cryptic" symbols, or linking, or multiple inheritance issues, or operator overloading, or pointers, or tons of OS-specific problems/compiler specific problems... etc. etc.
Also, if you're reading through a whole file, I would strongly suggest against
marking, especially for larger files. Marking basically creates a separate buffer that has the set amount of data you specify put in. This leads to two issues (well, there might be more):
1. You have to know how big of a buffer you need. If you have access to the original file reference, this won't be too difficult of a task.
2. Because you are creating a separate buffer, you're wasting a ton of memory just to store the file in memory twice.
In java (and actually, in C/C++, too), it's not an uncommon practice to read through a whole file, closing it, and the re-opening that file for read again.
If you want to access any part of a file at any time, I'd suggest looking at the Random Access File Class