使用Java生成的ZIP壓縮包解壓時出現不可預料的壓縮檔案末端的解決方案
問題描述:
如下圖所示,在解壓Java程式生成的ZIP壓縮包時出現不可預料的壓縮檔案末端,
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9kEVPVTRqJGasdkY5ZlMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TOwgTOzUDM5EDMxkDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
問題分袖:
出現上面的情況,大概有兩種情況,第一種是輸出流沒有關閉,第二種是輸出流關閉順序不正确。在寫程式時一定要注意使用流完畢後一定要關閉,要不然輸出的檔案可能是不完整或者損壞的,再者如果關閉輸出流的順序不正确的話也會造成檔案損壞或不完整。
解決方案:
檢查程式輸出流是否關閉或者是否關閉順序正确
進入視線壓縮的代碼:
從上面代碼可以看出應該先打開的流後關閉,後打開的流先關閉,繼續看下去,
從代碼中看出是關閉可輸出流,但是關閉的順序寫錯了,應該先關閉ZipOutputStream,後關閉OutputStream,
修改過後重新運作,問題解決
總結:鞏固基礎很重要。