Using random access files
Another alternative for storing the similarity matrix (and the utility matrix) is to use a RandomAccessFile
object. This is illustrated in Listing 9.23:
This little test program creates a random access file named inout
at line 17. The constant W
, defined at line 12, is the number of bytes (8) that Java uses to store a double
value. We need that to locate our data in the file. The second argument to the constructor, the string rw
, means that we will be both reading from and writing to the file. The loop at lines 18-20 writes 100 square roots into the file. The output from line 21 confirms that the file contains 800 bytes.
The loop at lines 23-27 uses direct access (random access) into the file, just like accessing a 100-element array. Each access requires two steps: seek the location to be read, and then read it. The seek()
method sets the file's read-write pointer to the point in the file where access is to begin. Its argument...