java ZIP 压缩/解压(支持中文)

一、Java压缩文件流(ZIP压缩)

★此例是将数据库中保存的文件进行压缩,最后获取到压缩成ZIP格式的二进制流

第三方包 : apache Comparess(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.     } 

 

你可能感兴趣的:(apache,数据库,二进制,压缩文件,休闲)