Descompactando arquivos Zip Java
Nesse tutorial simples e direto irei demonstrar como descompactar arquivos zipados utilizando Java.
Primeiro precisamos definir os o arquivo de origem e o path de destino.
Origem
Destino
Algoritmo
Abaixo podemos ver o algoritmo que fará a leitura do arquivo de origem e salvando no destino informado.
String origem = "C:\\Zip\\Examplo.zip";
String destino = "C:\\Zip\\";
File file = new File(origem);
ByteArrayInputStream bis = new ByteArrayInputStream(FileUtils.readFileToByteArray(file));
ZipInputStream zipStream = new ZipInputStream(bis);
ZipEntry ze;
byte buff[] = new byte[16384];
int readBytes;
while((ze = zipStream.getNextEntry()) != null) {
String fileName = destino + ze.getName();
if(ze.isDirectory()) {
Files.createDirectories(Paths.get(fileName));
continue;
}
zipStream.readAllBytes();
FileOutputStream outFile = new FileOutputStream(fileName);
while((readBytes = zipStream.read(buff)) != -1) {
outFile.write(buff, 0, readBytes);
}
outFile.close();
}
Informações adicionais
Import de dependências utilizadas
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
Dependência externa utilizada:
https://mvnrepository.com/artifact/commons-io/commons-io
Código fonte completo
https://github.com/aluizrech/sorting-and-tree-algorithm-example/tree/master/ZipToByte