You could try to minimize your disk seeks by reading in large blocks of data and then adding them to your list. I made something like this but as I read in the first file I sorted into a data structure.