JAva ZIP圧縮/解凍(中国語対応)


一、Java圧縮ファイルフロー(ZIP圧縮)
★この例では、データベースに保存されているファイルを圧縮し、最後にZIP形式に圧縮されたバイナリストリームを取得する
サードパーティ製パッケージ:apache Compares(commons-compress-1.3-bin.zip)
参照されるクラス:

  
  
  
  
  1. import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;  
  2. import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; 

パッケージング方法:

  
  
  
  
  1. private byte[] compressFiles(List<FileStorage> files){  
  2.         byte[] b = null;  
  3.         try{  
  4.             ByteArrayOutputStream bos = new ByteArrayOutputStream();  
  5.             ZipArchiveOutputStream zip = new ZipArchiveOutputStream(bos);  
  6.             zip.setEncoding("gbk");  
  7.             for(int i=0;i<files.size();i++){  
  8.                 FileStorage file = files.get(i);  
  9.                 ZipArchiveEntry entry = new ZipArchiveEntry(file.getFILE_NAME());  
  10.                 entry.setSize(file.getFILE_DATA().length);  
  11.                 zip.putArchiveEntry(entry);  
  12.                 zip.write(file.getFILE_DATA());  
  13.             }  
  14.             zip.closeArchiveEntry();  
  15.             zip.close();  
  16.             b = bos.toByteArray();  
  17.             bos.close();  
  18.         }catch(Exception e){  
  19.             e.printStackTrace();  
  20.             return null;  
  21.         }  
  22.         return b;  
  23.     }