Allora...i TAG code da soli non formattano il codice ,quindi mettici dentro del codice formattato perché così non si capisce nulla.
Ho dato comunque uno sguardo rapido alla funzione e perdonami se te lo dico è un po un casino...dal codice deduco che l'obiettivo è leggere un file con dentro un array non ordinato, eseguire un algoritmo merge sort ricorsivo sull'array , e infine salvare il file con l'array ordinato. Ebbene il primo consiglio è fare esattamente queste 3 cose utllizzando 3 metodi distinti, l'unico dei quali ricorsivo deve essere quello che esegue il merge sort, tu hai messo tutto assieme in un guazzabuglio notevole (con la ciliegina del while(true)..). Proviamo a ripartire dall'inizio strutturando la cosa come ti ho scritto (sempre se ho capito bene l'obiettivo) e posta il codice se eventualmente non va.