Arquivos compactados

3 respostas
mcirqueira

Olá pessoal!
É possível compactar arquivos no formato .zip em java.
Também dá para compactar no formatos: .gzip, .bzip, .b2zip, .rar e .7z?

3 Respostas

pedro_ha

Para comprimir em zip tem o pacote java.util.zip, se vc quizer outros formatos talvez va precisar de uma biblioteca.
Este codigo zipa um arquivo, mas eh possivel faze-lo de forma recursiva, por exemplo todos arquivos de uma pasta, usando esse msm pacote java.util.zip.

try { byte[] buffer = new byte[1024]; FileOutputStream fos = new FileOutputStream("C:\\ARQUIVOZIP.zip"); // C:\\ARQUIVOZIP.zip sera o arquivo zip que sera criado ZipOutputStream zos = new ZipOutputStream(fos); ZipEntry ze = new ZipEntry("arquivo.txt"); //nome do arquivo de entrada que sera zipado zos.putNextEntry(ze); FileInputStream in = new FileInputStream("C:\\arquivo.txt"); // lendo arquivo que sera zipado: "C:\\arquivo.txt" int len; while ((len = in.read(buffer)) > 0) { // lendo arquivo de entrada "C:\\arquivo.txt" zos.write(buffer, 0, len); // e escrevendo o dentro do arquivo "C:\\ARQUIVOZIP.zip" } in.close(); zos.closeEntry(); zos.close(); } catch (IOException ex) { ex.printStackTrace(); }

E

mcirqueira:
Olá pessoal!
É possível compactar arquivos no formato .zip em java.
Também dá para compactar no formatos: .gzip, .bzip, .b2zip, .rar e .7z?

Apenas gzip ( http://docs.oracle.com/javase/6/docs/api/java/util/zip/GZIPOutputStream.html , http://docs.oracle.com/javase/6/docs/api/java/util/zip/GZIPInputStream.html ) - para outros formatos, é melhor usar o programa nativo (que você tem de instalar de alguma forma, é claro) e invocá-lo via Runtime.exec.
Por exemplo, você pode usar o pbzip2.exe que é uma versão paralela do compactador bzip2, podendo usar todas as CPUs da sua máquina para comprimir mais rapidamente um arquivo.

mcirqueira

entanglement:
mcirqueira:
Olá pessoal!
É possível compactar arquivos no formato .zip em java.
Também dá para compactar no formatos: .gzip, .bzip, .b2zip, .rar e .7z?

Apenas gzip ( http://docs.oracle.com/javase/6/docs/api/java/util/zip/GZIPOutputStream.html , http://docs.oracle.com/javase/6/docs/api/java/util/zip/GZIPInputStream.html ) - para outros formatos, é melhor usar o programa nativo (que você tem de instalar de alguma forma, é claro) e invocá-lo via Runtime.exec.
Por exemplo, você pode usar o pbzip2.exe que é uma versão paralela do compactador bzip2, podendo usar todas as CPUs da sua máquina para comprimir mais rapidamente um arquivo.

Obrigado!
No linux é mais rápido, pois suporta zip, gzip, bzip e b2zip por linha de comando nativamente.

Criado 2 de maio de 2012
Ultima resposta 7 de mai. de 2012
Respostas 3
Participantes 3