我有以下代码来序列化和压缩字符串:
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文本?。
答案 0 :(得分:0)
是的,gzip流是可移植的,原始的未压缩数据将被准确恢复。当然假设您忠实地传输二进制压缩数据。我经常看到由于行尾转换或unicode文本转换而搞得一团糟,这很容易避免。