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

Compression 是java.util.zip.GZIPOutputStream';输出字节数组是否可移植?,compression,gzip,Compression,Gzip,我有以下代码来序列化和压缩字符串: private byte[] toZip(String xml) { try{ ByteArrayOutputStream bos = new ByteArrayOutputStream(); GZIPOutputStream gz = new GZIPOutputStream(bos); ObjectOutputStream oos = new ObjectOutputStream(gz);

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

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;
    }
}

返回的字节[]是否可移植?。我将其存储在数据库的blob字段中。它能用任何非Java程序(C++、.Net)检索和解压缩吗?。此非Java程序是否恢复原始字符串文本?

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