Estoy intentando convertir una matriz de bytes en un archivo ZIP. Tengo bytes usando el siguiente código:Cómo puedo convertir una matriz de bytes en un archivo ZIP
byte[] originalContentBytes= new Verification().readBytesFromAFile(new File("E://file.zip"));
private byte[] readBytesFromAFile(File file) {
int start = 0;
int length = 1024;
int offset = -1;
byte[] buffer = new byte[length];
try {
//convert the file content into a byte array
FileInputStream fileInuptStream = new FileInputStream(file);
BufferedInputStream bufferedInputStream = new BufferedInputStream(
fileInuptStream);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
while ((offset = bufferedInputStream.read(buffer, start, length)) != -1) {
byteArrayOutputStream.write(buffer, start, offset);
}
bufferedInputStream.close();
byteArrayOutputStream.flush();
buffer = byteArrayOutputStream.toByteArray();
byteArrayOutputStream.close();
} catch (FileNotFoundException fileNotFoundException) {
fileNotFoundException.printStackTrace();
} catch (IOException ioException) {
ioException.printStackTrace();
}
return buffer;
}
Pero mi problema ahora es con la conversión de la matriz de bytes de nuevo en un archivo ZIP - ¿cómo puede hacerse esto?
Nota: El ZIP especificado contiene dos archivos.
¿Qué es exactamente lo que quieres? ¿Desea volver a escribir los bytes en el disco en un archivo zip? ¿O quieres leer los contenidos? Los bytes de cómo los lee no están decodificados todavía. – morja
@ morja -> sí quiero escribir los bytes en el disco en forma de archivo zip. – Mohan
Bueno, pero luego solo escriba los bytes en el disco con un FileOutputStream y el nombre del archivo .zip. ¿No quieres escribir los archivos extraídos? – morja