This can be done with RandomAccessFile with some serious restrictions:
You can append data
You can replace old data with new data of exactly the same length
You can't insert
You can't delete
If you have "fixed-length records" you can do some pretty cool stuff, tho. You could build an indexing scheme external to the file or distribute it within the file. With a few thousand hours of spare time you could re-invent mainframe VSAM.