How many lines do you have in that file? For each line,
you are creating 9 strings, and an array. Each string will
take 24 bytes overhead (on top of the length to the string
itself). The overhead of the array is about 50 bytes,
plus pointers to the strings stored, plus some because arrays
always get a bit extra space allocated. That's about 120
bytes per array, making something like 336 bytes per line
in the file. And that isn't counting the overhead of the
hash. Or the actual content of the file.
So, if you have about 40 characters per line on average,
the 670 Mb already allocated won't do....