解压缩内存中压缩文件的内容

时间:2018-01-04 23:13:11

标签: java arrays zip unzip

我有以下方法将一些数据压缩为内存中的'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();
}

0 个答案:

没有答案