天天看點

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

問題描述:

如下圖所示,在解壓Java程式生成的ZIP壓縮包時出現不可預料的壓縮檔案末端,

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

問題分袖:

出現上面的情況,大概有兩種情況,第一種是輸出流沒有關閉,第二種是輸出流關閉順序不正确。在寫程式時一定要注意使用流完畢後一定要關閉,要不然輸出的檔案可能是不完整或者損壞的,再者如果關閉輸出流的順序不正确的話也會造成檔案損壞或不完整。

解決方案:

檢查程式輸出流是否關閉或者是否關閉順序正确

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

進入視線壓縮的代碼:

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

從上面代碼可以看出應該先打開的流後關閉,後打開的流先關閉,繼續看下去,

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

從代碼中看出是關閉可輸出流,但是關閉的順序寫錯了,應該先關閉ZipOutputStream,後關閉OutputStream,

修改過後重新運作,問題解決

使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案

總結:鞏固基礎很重要。