puoi usare un buffer di byte e leggere il file a blocchi ( ad esempio di 1 mega )

utilizza un filestream e adopera la funzione read che restituisce i byte da leggere, con un ciclo controlli che siano maggiori di 0 ( altrimenti hai letto tutto ) e leggi un altro blocco..