如何将字节数组转换为ZIP文件

我正在尝试将字节数组转换为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;

}

但是我现在的问题是将字节数组转换回ZIP文件-如何完成?

回答:

要从字节中获取内容,可以使用

ZipInputStream zipStream = new ZipInputStream(new ByteArrayInputStream(bytes));

ZipEntry entry = null;

while ((entry = zipStream.getNextEntry()) != null) {

String entryName = entry.getName();

FileOutputStream out = new FileOutputStream(entryName);

byte[] byteBuff = new byte[4096];

int bytesRead = 0;

while ((bytesRead = zipStream.read(byteBuff)) != -1)

{

out.write(byteBuff, 0, bytesRead);

}

out.close();

zipStream.closeEntry();

}

zipStream.close();

以上是 如何将字节数组转换为ZIP文件 的全部内容, 来源链接: utcz.com/qa/432039.html

回到顶部