Olá pessoal!
É possível compactar arquivos no formato .zip em java.
Também dá para compactar no formatos: .gzip, .bzip, .b2zip, .rar e .7z?
Arquivos compactados
3 Respostas
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();
}
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.
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.