Visto che nella lettura di un file l'accesso al disco è l'elemento che consiziona le prestazioni, basta minimizzare il numero di accessi. Se il file non è troppo grande puoi caricarlo completamente in memoria in una volta sola, in caso contrario devi utilizzare un buffer, ad esempio di 1 MB, in cui carichi il file un po per volta.