我正在使用Java。如何輸出GZIP格式的deflater的結果?
我想使用Deflater class來縮減一些輸入,然後我想輸出它爲GZIP格式,因此可以使用GZIP解壓縮。我怎樣才能做到這一點?我的理解是它會以不同的格式輸出它。我是一個noob,所以如果你可以明確,也許給一個代碼示例,這將是超級有用的。
我不能使用GZIPOutputStream,因爲我需要在輸出前使用一些Deflater類的特定功能。
我正在使用Java。如何輸出GZIP格式的deflater的結果?
我想使用Deflater class來縮減一些輸入,然後我想輸出它爲GZIP格式,因此可以使用GZIP解壓縮。我怎樣才能做到這一點?我的理解是它會以不同的格式輸出它。我是一個noob,所以如果你可以明確,也許給一個代碼示例,這將是超級有用的。
我不能使用GZIPOutputStream,因爲我需要在輸出前使用一些Deflater類的特定功能。
顯然GZIPOutputStream
無論如何都在使用Deflater
,所以你並沒有試圖做任何瘋狂的事情。
一種可能性(從this page,這可能值得一讀)是子類GZIPOutputStream
,以便您可以訪問其Deflater
對象。東西或多或少像這樣(未經):
public class MyGZIPOutputStream extends GZIPOutputStream {
public MyGZIPOutputStream(final OutputStream out) throws IOException {
super(out);
}
public void setDictionary(byte[] b) {
def.setDictionary(b);
}
}
然後您就可以使用您的MyGZIPOutputStream
保存該文件之前,請務必setDictionary電話。
變量def
是GZIPOutputStream
的受保護成員,因此需要子類化來訪問它。
第一個問題是爲什麼?
GZIPping Deflater的輸出意味着收件人必須同時使用Gunzip和inflate。
GZIPping Deflater的輸出可能會增加大小。它肯定不會顯着壓縮它。
如果你需要GZIP輸出,忘記Deflater。
如果你需要字典,忘記GZIP輸出。
我不想GZIP輸出,我想輸出它在GZIP格式,以便它可以使用GZIP解壓縮。基本上,我正在使用Deflate實施GZIP。這與一個學校項目有關,因此可能存在一些奇怪之處。 –
你需要什麼Deflater類功能? –
setDictionary函數。 –