Ordenação Externa

Tenho que implementar um algoritmo de ordenação externa em Java. Para isso, tenho que dividir um determinado arquivo (que, logicamente, não cabe na memória) em blocos. A questão é: como fazer isso sem carregar o arquivo inteiro na memória?

Eu estou supondo que ao criar uma instância da classe FileReader da maneira abaixo, estou carregando o arquivo na memória.

FileReader reader = new FileReader("ArquivoTexto.txt");  

É isso mesmo? E se for, como conseguirei dividir o arquivo em blocos sem carregá-lo inteiro na memória?

Obrigado.

Use a classe RandomAccessFile. Ela possui o método seek:
http://www.java-tips.org/java-se-tips/java.io/how-to-use-random-access-file.html
http://download.oracle.com/javase/1.4.2/docs/api/java/io/RandomAccessFile.html

Não, isso só abre o arquivo. Não o carrega em memória.