我有以下方法将一些数据压缩为内存中的'file'(实际上这是字节数组)。
结果将保存在数据库中,因此我需要这个数组(方法返回byte [])。
如何解压缩 - 数据保存为内存中的压缩文件? 我完全相信我在zip方法中给出了param'data'。
public static byte[] zip(String name, String data) {
ByteArrayOutputStream baos = null;
ZipOutputStream zos = null;
try {
baos = new ByteArrayOutputStream();
zos = new ZipOutputStream(baos);
ZipEntry zipEntry = new ZipEntry(name);
byte[] bytes = data.getBytes();
zipEntry.setSize(bytes.length);
zos.putNextEntry(zipEntry);
zos.write(bytes);
return baos.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (Objects.nonNull(zos)) {
try {
zos.closeEntry();
} catch (IOException e) {
e.printStackTrace();
}
try {
zos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (Objects.nonNull(baos)) {
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
throw new RuntimeException();
}