2008-09-26 238 views

回答

8
ZipOutputStream targetStream = new ZipOutputStream(fileToSaveTo); 
ZipEntry entry = new ZipEntry(nameOfFileInZipFile); 
targetStream.putNextEntry(entry); 

byte[] dataBlock = new byte[1024]; 
int count = inputStream.read(dataBlock, 0, 1024); 
while (count != -1) { 
    targetStream.write(dataBlock, 0, count); 
    count = inputStream.read(dataBlock, 0, 1024); 
} 

。換句話說:

  1. 創建在一個ZipOutputStream,給它要寫入文件。
  2. 您創建一個ZipEntry,它構成該zip文件中的一個文件。 即當您打開myFile.zip,並且裏面有3個文件時,每個文件都是ZipEntry。

  3. 你把的ZipEntry到您ZipOutputStream

  4. 創建一個字節的緩衝區讀取數據到。
  5. 將您的inputStream讀入您的字節緩衝區,並記住計數。
  6. 雖然count不是-1,但將該字節byffer寫入您的zipStream。
  7. 閱讀下一行。

當你完成後關閉你的流。按照您認爲合適的方法將其包裹。