64k in a single file is very convenient since it doesn't cause overhead, storing the coordinates causes just about maximum overhead possible (99.7%
overhead for the coordinates due to typical 4k disk page size).
You don't need to store the coordinates if you use one file for all sectors as the coordinates can be inferred from the sectors position in the file. using multiple small files will give significantly worse performance than a single larger file would. (more system calls to open files and higher data fragmentation)
I also noticed something weird today, using System.currentTimeMillis()
opening a file = 0ms
writing = 65ms
closing = 0 ms
same thing for reading, shouldn't opening the file be time consuming?
It is possible that the OS does the file open asynchronosly, so the actual open call returns immediatly and the cost of it gets tacked onto your writing/reading if it is done immediatly afterwards.
Try doubling the amount of data you write and see how much the time increases.
In general i would strongly recommend against using multiple files if you got a fixed maximum size of 900 cells (900 cells is only around 60MiB, and storing a single ~60MB file of all zeroes is a fairly low price to pay (you can generate this file on installation or store it compressed in the installer and it won't have any impact on the download size)