J'ai octet [] code> de fichier zip. Je dois le décoder sans créer de nouveau fichier et obtenir octet [] code> de ce fichier omips.
S'il vous plaît aidez-moi à faire cela p>
3 Réponses :
Vous pouvez utiliser Si vous avez les données dans une matrice d'octet, vous pouvez laisser ces données à partir d'un zipinputtream code> et zipOutputtream code> (dans le package java.util.zip code>) pour lire et écrire de fichiers zip. p>
byteArrayInputStream code> ou écrire sur un byteaRrayOutPutStream code> pointant sur les tableaux d'octets d'entrée et de sortie. < / p>
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;
}
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;
}
Qu'avez-vous essayé jusqu'à présent? ByearrayInputStream et byteArrayOutPutStream seront utiles ici ...