2017-02-09 19 views
0

私は文字列をシリアル化して圧縮する。この次のコードをしました:java.util.zip.GZIPOutputStreamの出力バイト配列は移植可能ですか?

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以外のプログラムは元の文字列テキストを回復しますか?

答えて

0

はい、gzipストリームは移植可能で、元の非圧縮データは正確に復元されます。もちろん、バイナリ圧縮データを忠実に転送していると仮定します。私はしばしば、行末の変換や容易に回避できるユニコードのテキスト変換のために混乱してしまうのが分かります。

関連する問題