Acho que o pessoal não entendeu. Se você está lendo sobre mergeSort, é porque seu trabalho com esse arquivo envolve carrega-lo inteiramente na memória, para então ordena-lo, não?
A sugestão que o pessoal está dando envolve ler apenas linha-a-linha, mas nesse caso, será impossível fazer a ordenação.
A forma mais fácil de resolver isso é carregar esse arquivo numa tabela de um banco de dados, e pedir para o próprio banco ordena-la.
Outra forma é ler apenas o campo que precisa ser ordenado do arquivo e sua posição física (use para isso a classe RandomAccessFile). Ordene essa lista com esses dois campos, e depois use as posições para gerar um novo arquivo ordenado.
A terceira solução não é definitiva como as outras, mas pode quebrar um galho. Se os arquivos grandes não são tão grandes e não tendem a crescer, uma última forma seria aumentar a capacidade máxima de memória da VM. Para isso você inicia o java com o comando -Xmx e quantidade de memória (por padrão é apenas 64MB):
java -Xmx1024m -jar seuPrograma.jar