Saltar al contenido

En Java: cómo comprimir un archivo desde un byte[] array?

Nuestro equipo de redactores ha estado mucho tiempo buscando para darle soluciones a tus preguntas, te ofrecemos la soluciones por eso nuestro objetivo es serte de gran apoyo.

Solución:

Puede usar java.util.zip.ZipOutputStream de Java para crear un archivo zip en la memoria. Por ejemplo:

public static byte[] zipBytes(String filename, byte[] input) throws IOException 
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ZipOutputStream zos = new ZipOutputStream(baos);
    ZipEntry entry = new ZipEntry(filename);
    entry.setSize(input.length);
    zos.putNextEntry(entry);
    zos.write(input);
    zos.closeEntry();
    zos.close();
    return baos.toByteArray();

Tengo el mismo problema pero necesitaba muchos archivos en un zip.

 protected byte[] listBytesToZip(Map mapReporte) throws IOException 
    String extension = ".pdf";
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ZipOutputStream zos = new ZipOutputStream(baos);
    for (Entry reporte : mapReporte.entrySet()) 
        ZipEntry entry = new ZipEntry(reporte.getKey() + extension);
        entry.setSize(reporte.getValue().length);
        zos.putNextEntry(entry);
        zos.write(reporte.getValue());
    
    zos.closeEntry();
    zos.close();
    return baos.toByteArray();

Sección de Reseñas y Valoraciones

Tienes la opción de confirmar nuestro estudio poniendo un comentario o dejando una puntuación te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *