Now let’s suppose that we decide to allocate 15 (unicode) characters to surnames
and 3 (unicode) characters to initials. This means that each surname will be allocated
30 (i.e., 15 × 2) bytes and each set of initials will be allocated 6 (i.e., 3 × 2)
bytes. Since we know that a long occupies precisely 8 bytes and a fl oat occupies
precisely 4 bytes, we now know that record size = (8 + 30 + 6 + 4) bytes = 48 bytes.
Consequently, we shall store records starting at byte positions 0, 48, 96, etc. The
formula for calculating the position of any record on the file is then:
(Record No. –1) × 48
For example, suppose our RandomAccessFile object for the above accounts file
is called ranAccts . Then the code to locate the record with account number 5 is