2014-04-01 200 views
0

我想打開一個特定的文件並壓縮它,並通過UDP發送壓縮結果的字節數組。壓縮文件併發送它而不保存壓縮文件

現在我檢查了java zip API,但它只能讓我將壓縮文件保存到計算機並再次打開併發送它會效率低下。

有沒有辦法做我所需要的,而無需編寫我自己的壓縮算法的實現?

回答

1

您可以將ZipOutputStream包圍在ByteArrayOutputStream的周圍,並從ByteArrayOutputStream中獲取字節。 事情是這樣的:?

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ZipOutputStream zos = new ZipOutputStream(baos); 
//write the entries 
zos.close(); 
byte[] bytes = baos.toByteArray(); 
+0

你通過「寫的條目」的意思,我不想結果寫入文件 – omer12433

+0

我的意思寫的zip文件的內容,你的情況您要壓縮的文件的內容將成爲條目。 – tibtof

+0

如果只需要壓縮一個文件進行網絡傳輸,那麼'DeflaterOutputStream'可能會更好。 – bcrist