Buffer um arquivo grande; BufferedInputStream limitado a 2 gb; Matrizes limitadas a 2 ^ 31 bytes

Eu estou sequencialmente processando um arquivo grande e gostaria de manter um grande pedaço dele na memória, 16gb ram disponível em um sistema de 64 bits.

Uma maneira rápida e suja é fazer isso, é simplesmente quebrar o fluxo de entrada em um fluxo de entrada em buffer, infelizmente, isso só me dá um buffer de 2GB. Eu gostaria de ter mais disso na memória, que alternativas eu tenho?

questionAnswers(5)

yourAnswerToTheQuestion