Resetar Ponteiro interno do BufferedReader

O seguinte trecho de código realiza uma iteração sobre os arquivos de um determinado diretório remoto através do protocolo FTP. Cada arquivo texto desse diretório é carregado em um InputStream, através do método retrieveFileStream() da classe FTPCliente do Apache Commons Net Api. Esse objeto InputStream é empacotado em um BufferedReader que armazena o arquivo em um buffer e permite realizar uma leitura linha-a-linha. O problema é que antes de eu ler o arquivo e armazenar seus registros em uma coleção de objetos, preciso verificar se o arquivo não foi preenchido com zeros. Quando não há dados para enviar a plataforma baixa envia esses arquivos preenchidos com zero. E ai preciso acessar o buffer e verificar seu conteúdo e isso altera o ponteiro interno de leitura do objeto BufferedReader, então quando vou lê-lo novamente para o devido parsing ele me retorna uma referencia nula.
Tentei criar um clone do BufferedReader, mas o conteúdo do buffer foi esvaziado no original. Tentei duplicar o retorno do retrieveFileStream, um para leitura do arquivo e outro para verificar se ele é zerado, sem sucesso também. Alguém tem alguma sugestão?

[code]for (int i = 0; i < ftpArray.length; i++) {
InputStream input = ftp.retrieveFileStream(ftpArray[i].getName());
InputStreamReader in = new InputStreamReader(input);
BufferedReader reader = new BufferedReader(in);
/**
* Puxa os primeiros 122 bytes do arquivo, gera seu checksum por CRC-32 e o
* compara com o checksum de um arquivo preenchido com zeros (1019123653).
* Se forem iguais, o arquivo é deletado e a iteração segue para o passo seguinte.
*/
char cbuf[] = new char[122];
reader.read(cbuf, 0, 122);
if (cbuf.length == 122) {
checksum.reset();
String strbuf = new String(cbuf);
checksum.update(strbuf.getBytes(), 0, strbuf.length());
if (checksum.getValue() == 1019123653) {
if (ftp.deleteFile(ftpArray[i].getName())) {
if (!ftp.completePendingCommand()) {
ftp.logout();
ftp.disconnect();
_logger.error(“Falha durante a leitura dos arquivos.”);
}
input.close();
reader.close();
in.close();
continue;
}
}
}

String linha = null;
while ((linha = reader.readLine()) != null) {
	Objeto objeto = new Objeto();
	objeto.setPropriedade(linha.substring(6, 17));
	...
}

}[/code]

Quem sabe fechando o arquivo e os readers você consiga fazer. Não basta fechar mas sim quando for ler novamente deve ser instanciado um novo reader.

Deve funcionar.