Preciso de criar um método que recebe o InputStream de um arquivo como uma entrada,
e o OutputStream de um outro arquivo como uma saída.
Sendo que o arquivo de entrada deverá ser zipado no arquivo de saída.
Esse é o problema que tenho que resolver!!!
Para tentar resolver esse problema criei o método abaixo
No entanto estou tendo problema para utilizar o método putNextEntry de java.util.zip.ZipOutputStream,
pois o mesmo tem como argumento um ZipEntry, e o ZipEntry por sua vez tem como argumento uma String
sendo que eu não tenho a String do arquivo de entrada SOMENTE o InputStream.
Alguém sabe como resolver esse problema ???
A ÚNICA COISA QUE NÃO POSSO MUDAR É A ASSINATURA DO MÉTODO…
import java.io.*;
import java.util.zip.*;
public void comprimirZip(InputStream arqEntrada, OutputStream arqSaida) {
byte[] buffer = new byte[1024];
ZipOutputStream out = new ZipOutputStream(arqSaida);
try {
out.putNextEntry(arqEntrada);//Aqui está o problema!!!!!!!!
int len;
while ((len = arqEntrada.read(buffer)) > 0 ) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
}
try {
out.closeEntry();
out.close();
arqEntrada.close();
} catch (Exception e) {
}
}