琢磨不透的java解壓縮檔案報錯

來源:互聯網
上載者:User

寫了一個解壓縮的類,代碼如下: mport java.io. * ;
import  java.util.zip. * ;
 
public   class  UnZipAE  ... {
   static final int BUFFER = 2048;
   ZipInputStream zis = null;
   String outputDirectory = new String();
   
   public void openZipFile(String fileName)
   ...{
       try
       ...{
           zis = new ZipInputStream(
                   new BufferedInputStream(
                           new FileInputStream(fileName)));
       }
       catch(Exception e)
       ...{
           System.out.println(e);                    
       }       
   }
   
   public void setOutPutDirectory(String directory)
   ...{
       outputDirectory = directory;
   }
   
   public void unzipFile()
   ...{
       byte [] bArray = new byte [2048];
        int len = 2048, ct;
        ZipEntry entry;
        try
        ...{
            while((entry = zis.getNextEntry()) != null)
            ...{
                FileOutputStream fout = new FileOutputStream(outputDirectory + "/" + entry.getName());
                BufferedOutputStream bout = new BufferedOutputStream(fout, len); 
                while((ct = zis.read(bArray, 0, len)) != -1)
                ...{
                    bout.write(bArray, 0, ct);
                }
                bout.flush();
                fout.close();
                bout.close();
            }            
            zis.close();
        }
        catch(Exception e)
        ...{
            System.out.println(e);    
        }        
   }
}

 但寫了一個測試程式運行起來後,問題就來了. UnZipAE uzp  =   new  UnZipAE();
uzp.openZipFile( " D:/test.zip " );
uzp.setOutPutDirectory( " D:/output " );
uzp.unzipFile();

運行起來後,居然報異常IllegalArgumentException,設定斷點調試後,發現異常是在entry = zis.getNextEntry()拋出的.我暈,這種異常怎麼調試.鬱悶了半天后,我開始懷疑是不是壓縮檔有問題,因為這個壓縮檔包內全是中文命名的檔案,於是,我換了一個zip壓縮包.壓縮包內的檔案都是英文命名的原始碼.測試回合,一切正常.暈!!!!難道是java不支援解壓縮包含中文檔案名稱的zip檔案嗎?

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.