7
votes

Convertir les octets zip [] en ospip byte []

J'ai octet [] de fichier zip. Je dois le décoder sans créer de nouveau fichier et obtenir octet [] de ce fichier omips. S'il vous plaît aidez-moi à faire cela


1 commentaires

Qu'avez-vous essayé jusqu'à présent? ByearrayInputStream et byteArrayOutPutStream seront utiles ici ...


3 Réponses :


10
votes

Vous pouvez utiliser zipinputtream et zipOutputtream (dans le package java.util.zip ) pour lire et écrire de fichiers zip.

Si vous avez les données dans une matrice d'octet, vous pouvez laisser ces données à partir d'un byteArrayInputStream ou écrire sur un byteaRrayOutPutStream pointant sur les tableaux d'octets d'entrée et de sortie. < / p>


0 commentaires

1
votes

Si vous avez besoin de dégonfler code> vos données zippées et que vous êtes trop paresseux pour traiter les flux, vous pouvez utiliser le code suivant:

public byte[] deflate(byte[] data) throws IOException, DataFormatException {
    Inflater inflater = new Inflater();
    inflater.setInput(data);
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length);
    byte[] buffer = new byte[1024];
    while (!inflater.finished()) {
        int count = inflater.inflate(buffer);
        outputStream.write(buffer, 0, count);
    }
    outputStream.close();
    byte[] output = outputStream.toByteArray();
    return output;
}


0 commentaires

3
votes
public static List<ZipEntry> extractZipEntries(byte[] content) throws IOException {
    List<ZipEntry> entries = new ArrayList<>();
   
    ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(content));
    ZipEntry entry = null;
    while ((entry = zipStream.getNextEntry()) != null)
    {
        System.out.println( "entry: " + entry );
        ZipOutputStream stream= new ZipOutputStream(new FileOutputStream(new File("F:\\ssd\\wer\\"+entry.getName())));
        stream.putNextEntry(entry);
    }
    zipStream.close();
   
    return entries;
}

0 commentaires