Compactar gerar .zip com Java - Lança IOException ao executar o método

[code]private void compactarParaZip(String arqSaida, String arqEntrada) throws IOException{
int tamanhoBuffer = (int) epubFullTemporario.length();
int cont = 0;
byte[] dados = new byte[tamanhoBuffer];

       BufferedInputStream origem = null;
       FileInputStream streamDeEntrada = null;
       FileOutputStream destino = null;
       ZipOutputStream saida = null;
       ZipEntry entry = null;
              
       try {
            destino = new FileOutputStream(new File(arqSaida));
            saida = new ZipOutputStream(new BufferedOutputStream(destino));
            File file = new File(arqEntrada);
            streamDeEntrada = new FileInputStream(file);
            origem = new BufferedInputStream(streamDeEntrada, tamanhoBuffer);
            entry = new ZipEntry(file.getName());
            saida.putNextEntry(entry);
                       
            while((cont = origem.read(dados, 0, tamanhoBuffer)) != -1) {
                saida.write(dados, 0, cont);
            }
            origem.close();
            saida.close();
        } catch(IOException e) {
            throw new IOException(e.getMessage());
        }
   }[/code]

.

Oi.

Retire aquele try catch dali. Se você não vai tratar a exceção, não tem porque retirar toda a informação de stack trace dela antes de relança-la.
Depois, seria muito interessante que você colocasse o texto da exception.

Se você copiou o exemplo daqui:
http://java.sun.com/developer/technicalArticles/Programming/compression/

Provavelmente esse código deveria funcionar. Pelo menos para um arquivo só.
Outra opção é dar uma olhada em como o meu software de esteganografia faz.

Oi Vini, como vai?

Obrigado pelas dicas… Acontece que para um arquivo só funciona. A questão é que agora preciso compactar arquivo e pasta juntos gerando um só .zip ex: tudo.zip. Veja meu método que estou tendo mas o último arquivo sobrescreve o primeiro:

[code]private void compactarParaZip(String arqEntrada1, String arqEntrada2, String arqSaida) throws IOException{

	   int tamanhoBuffer = 99999;
	   int cont = 0;
       byte[] dados = new byte[tamanhoBuffer];
                   
       BufferedInputStream origem1 = null;
       BufferedInputStream origem2 = null;
       
       FileInputStream streamDeEntrada1 = null;
       FileInputStream streamDeEntrada2 = null;
       
       FileOutputStream destino = null;
       
       ZipOutputStream saida = null;
    	     	       
       ZipEntry entry1 = null;
       ZipEntry entry2 = null;
              
       try {
            destino = new FileOutputStream(new File(arqSaida));
            
            saida = new ZipOutputStream(new BufferedOutputStream(destino));
            	            	            
            File file1 = new File(arqEntrada1);
            File file2 = new File(arqEntrada2);
            
            streamDeEntrada1 = new FileInputStream(file1);
            streamDeEntrada2 = new FileInputStream(file2);
            
            origem1 = new BufferedInputStream(streamDeEntrada1, tamanhoBuffer);
            origem2 = new BufferedInputStream(streamDeEntrada2, tamanhoBuffer);
            
            entry1 = new ZipEntry(file1.getName());
            entry2 = new ZipEntry(file2.getName());
            
            saida.putNextEntry(entry1);
            saida.putNextEntry(entry2);
                       
     
            
            while((cont = origem2.read(dados, 0, tamanhoBuffer)) != -1) {
                saida.write(dados, 0, cont);
            }
            
            while((cont = origem1.read(dados, 0, tamanhoBuffer)) != -1) {
                saida.write(dados, 0, cont);
            }
            
            origem1.close();
            origem2.close();
            
            saida.close();
            
        } catch(IOException e) {
            throw new IOException(e.getMessage());
        }
   }[/code]

Estou lendo o programinha que você me recomendou…

Abraços,
Obrigado pela grande ajuda.
AS