Inserir zip em blob direto[+urgente][+resolvido]

1 resposta
S

Opa galera, sou um mero estágiario em busca de um ajuda hehehe
é meu primeiro topico, so frquento como leitor aqui
e gostaria de agradecer e parabenizar o site

tenho uma duvida e nao encontro em lugar nenhum.
no sistema que eu trabalho será necessário , ele capturar o xml em buffer de outro metodo compactar e adcionar em um arquivo zip para eu poder enviar ele para o oracle, no momento so estou conseguindo compactar, se alguem conseguir me ajude

/**
     * Compacta uma mensagem XML.
     * 
     * @param msg Mensagem XML a ser compactada
     * 
     * @return Retorna um buffer com a mensagem XML compactada.
     * 
     * @throws Exception - Erro ao compactar a mensagem.
     *******************************************************************************/
    private byte[] compactaXML (String msg) throws Exception
    {
        byte     buffer[], aux[];
        int      total;
        Deflater zip;
        
        try 
        {
            //--- Compacta os bytes da String ---
            aux = msg.getBytes("ISO-8859-1");
            total = aux.length;
            zip = new Deflater();
            
            
            zip.setInput(aux);
            zip.finish();    
            
            //--- Cria o buffer com a mensagem compactada ---
            aux = new byte[total];
            total = zip.deflate(aux);
            zip.end();
            
            //--- Retorna o buffer ---
            buffer = new byte[total];
            System.arraycopy(aux, 0, buffer, 0, total);
                     
            
            return buffer;
        } 
        catch (Exception e) 
        {
            throw new Exception("Erro ao compactar a mensagem XML: " + e);
        }        
    }// compactaXML

desde já grato

1 Resposta

S
/**
     * Compacta uma mensagem XML.
     * 
     * @param msg Mensagem XML a ser compactada
     * 
     * @return Retorna um buffer com a mensagem XML compactada.
     * 
     * @throws Exception - Erro ao compactar a mensagem.
     *******************************************************************************/
    private byte[] compactaXML (String msg) throws Exception
    {
        byte                  buffer[] = null, aux[] = null, teste[];
        int                   total = 0;
        Deflater              zip;
        String                nomeArq = "temp.xml";
        ByteArrayOutputStream vByte = new ByteArrayOutputStream();
        
        try
        {
            //------------------------------
            //--- Criação do Binário Zip ---
            //------------------------------
            
            //--- Compacta os bytes da String ---
            aux = msg.getBytes();
            total = aux.length;

            //--- Cria o Arquivo Zip ---
            ZipOutputStream out = new ZipOutputStream(vByte);

            //--- Adiciona o arquivo zip no arquivo ---
            out.putNextEntry(new ZipEntry(nomeArq));

            //--- Transfere os bytes para o arquivo ----
            out.write(aux, 0, total);

            //--- Completa a entrada de dados ---
            out.closeEntry();

            //--- Completa a Criação do zip ---
            out.close();
            
            return vByte.toByteArray();
        }
        catch (IOException e)
        {
            System.out.println("Erro ao compactar a mensagem XML: ");
        }
        return null;
    }// compactaXML

suei 10 horas mais saiu
vlws

Criado 23 de abril de 2007
Ultima resposta 24 de abr. de 2007
Respostas 1
Participantes 1