%20usando%20java.png)
Temos arquivos grandes onde precisamos fazer pesquisas de padrões. Parece que quando usamos GZIPInputStream ele descompacta o arquivo na memória e então preciso pesquisá-lo. Na memória, um arquivo descompactado, por exemplo, tomando 600 MB e obtemos pelo menos 10 solicitações ao nosso servidor e não podemos nos dar ao luxo de pesquisar arquivos de 2 ou 3 GB na pesquisa de memória. O que procuramos é se temos uma maneira de descompactar linha por linha e fazer a pesquisa? (ou) qualquer outra solução para este problema.
Responder1
ZLib suporta descompactação parcial e sequencial, então você pode ler uma parte do arquivo gzip (mas lembre-se que os arquivos gzip têm um cabeçalho) e chamar util.zip.Inflater com o número de bytes dos quais deseja inflar.
Observe em particular o método
setInput(byte[] b, int off, int len)
isso permite que você comece off bytes no arquivo gzip e leia e descompacte len bytes a partir desse ponto.
Javadoc está aqui:http://docs.oracle.com/javase/6/docs/api/java/util/zip/Inflater.html