2017-02-09 2 views
0

I 직렬화하고 문자열 압축이 다음 코드했습니다 :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 프로그램이 원본 String 텍스트를 복구합니까?

답변

0

예, gzip 스트림은 이식 가능하며 원래의 압축되지 않은 데이터는 정확하게 복구됩니다. 물론 바이너리 압축 데이터를 충실하게 전송한다고 가정하십시오. 나는 쉽게 끝날 수있는 줄 끝 변환이나 유니 코드 텍스트 변환으로 인해 엉망이되는 것을 종종 봅니다.