If this is a large file, most likely it will be written to disk as an integral part and the "streaming" of data will be faster than parallel writing, as this will start moving heads back and forth. To find out which is the fastest, you need an intimate knowledge of your target production environment, because in a high-level storage, the data is likely to be distributed across multiple disks, and parallel reads can be faster.
The best approach - I think, is to read it with large chunks in memory. Make it available as ByteArrayInputStream for parsing.
Most likely, you will bind the processor during parsing and data processing. Perhaps parallel reduction of cards can help here to distribute the load across all cores.
source share