dúvida ao zipar arquivo

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) {
        }

    }

Olá, amigo!

Beleza?

Olha só, olhei rapidamente seu código e acho que encontrei o problema. O método putNextEntry só aceita como parâmetro um objeto do tipo ZipEntry, altere a linha 11 problemática pelas duas seguintes:

ZipEntry entrada = new ZipEntry("path do seu arquivo de entrada");
out.putNextEntry(entrada);

Espero que isso resolva. Mas, se não funcionar, coloque um printStackTrace no seu catch e coloque aqui.

Dê uma olhada aqui:

http://java.sun.com/developer/technicalArticles/Programming/compression/

Falou!