Pessoal. Estou lendo um arquivo um tanto grande (> 30GB), que só possui uma linha. Precisava dividir o texto desse arquivo em arquivos menores de 6 dígitos cada.
Não posso ler linha a linha, pois só tem 1, e o Java não ia gostar nada de guardar 30GB de informação em uma única string. 
Também não posso ler o arquivo usando como referência seu tamanho (ex: continuar enquanto tamanho for maior que 0), pois acredito que nem eu um BigInteger cabe a quantidade de caracteres que possui um arquivo de 30GB.
Eu estava lendo caractere por caractere, só parando a leitura quando o caractere fosse null, mas como podem ver, isso não é a melhor maneira de se fazer isso.
Queria ler um grupo x (no caso: 6) de caracteres por vez (se possível), mas não posso me basear no tamanho do arquivo ou quanto falta para acabar. Tentei umas gambiarras do tipo: continuar enquanto o valor lido for diferente de null, mas não ta dando.
Preciso de ajuda, to bem perdido nisso. Se alguém tiver um código que me ajude, vai se muito bem vindo.
Muito obrigado