Home > Artigos > Java em Geral >
Arquivos ZIP em Java
Publicado por Tadeu_Santos em 18/01/2011 - 79.074 visualizações
1. Compactando arquivos com Java
Java possui um pacote de classes que permitem compactação de dados. Vejamos como é fácil compactar todos os arquivos de uma pasta.
O primeiro passo é importar as classes que usaremos:
Do pacote java.io usaremos classes para manipular fluxos (streams) de entrada e saída de dados. Ao passo que no pacote java.util.zip estão as classes que farão a compactação
dos dados.
É recomendado estudar a documentação desses dois pacotes, facilitará o entendimento.
http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html
http://java.sun.com/j2se/1.4.2/docs/api/java/io/package-summary.html
Vamos ao código e depois daremos uma passada nas partes importantes.
Esta é a nossa classe Compactador, percebe-se que usaremos seu método compactar() para compactar todos os arquivos da pasta onde nossa classe está. Para usar o método é necessário instanciar um objeto da classe, por exemplo:
O método recebe uma String como argumento com o nome do arquivo a ser criado. Ex.:"arquivo.zip".
1.1 Armazenadores
Vamos dar uma geral nas variáveis do método compactar.
1.2 Primeira parte importante
Aqui é criado o objeto saida que será usado para gravar o nosso arquivo ZIP. Nesta parte também criamos o array arquivos que recebe a lista dearquivos e subpastas da pasta onde a classe se encontra.
1.3 Compactação
Para serem compactado, os arquivos têm que ser abertos, lidos e seus conteúdos escritos como entrada (entry) no arquivo ZIP. Isto é feito, arquivo por arquivo, percorrendo os elementos do array arquivos. É o que vemos no código abaixo.
Veja que estamos compactando somente os arquivos da pasta, ignorando suas subpastas. Você poderia exercitar-se mudando isto :) .
O fragmento abaixo merece uma atenção especial.
É aqui que dizemos para saida que estamos enviando um novo arquivo (entrada).
Depois de informamos isto, podemos gravar (de 2 em 2 KB, lembra?) os dados no arquivo ZIP.
1.4 Observações finais
O resto do código é bastante simples, vale lembrar que sempre após ler ou gravar um arquivo, o seu stream deve ser fechado (origem.close(), saida.close()).
Enfim, um código bem simples que pode ser muito bem explorado em aplicações diversas.
Dica: Tente fazer o método de descompactar.
Até o próximo.
Tadeu R. A. Santos
- Runtime.getRuntime().exec() - Problemas
- Zipando arquivo com código Java
- Disponibilizar classes
- Arquivo ZIP com JWS
- Gerar e Salvar grupo de arquivos excel
- como eu uso o import?
- Zipando Arquivos - Problemas com Acentuação
- Não consigo Descompactar arquivos grandes!!!!
- como faço isso
- JDBC Driver do Progress
- Classe ZIP
- Compilando vários arquivos juntos

