java.util.zip.GZIPOutputStream的输出字节数组是否可移植?

时间:2017-02-09 20:55:32

标签: compression gzip

我有以下代码来序列化和压缩字符串:

private byte[] toZip(String xml) {
    try{
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        GZIPOutputStream gz = new GZIPOutputStream(bos);
        ObjectOutputStream oos = new ObjectOutputStream(gz);
        oos.writeObject(xml);
        oos.flush();
        oos.close();
        return bos.toByteArray();
    } catch (IOException e){
        log.error("Error", e);
        if(log.isEnabledFor(MucamLogger.FINEST))log.finest(xml);
        return null;
    }
}

返回的byte []是否可移植?我将它存储在数据库的blob字段上。是否可以使用任何非Java程序(C ++ ,. Net)检索和解压缩?这个非Java程序是否恢复了原始的String文本?。

1 个答案:

答案 0 :(得分:0)

是的,gzip流是可移植的,原始的未压缩数据将被准确恢复。当然假设您忠实地传输二进制压缩数据。我经常看到由于行尾转换或unicode文本转换而搞得一团糟,这很容易避免。

相关问题