欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

通过java api实现解压缩zip示例

程序员文章站 2024-02-27 21:15:21
通过java api实现zip压缩格式的压缩与解压缩 复制代码 代码如下:package com.hongyuan.test; import java.io.file;...

通过java api实现zip压缩格式的压缩与解压缩

复制代码 代码如下:

package com.hongyuan.test;

import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.outputstream;
import java.util.enumeration;
import java.util.zip.zipentry;
import java.util.zip.zipfile;
import java.util.zip.zipoutputstream;

public class ziptest {

 public static void main(string[] args) throws ioexception {
  unzip("bootstrap.zip");
  zip("bootstrap_01.zip","bootstrap/css/bootstrap.css","bootstrap/css/bootstrap.min.css");
 }

 public static void unzip(string filename) throws ioexception{
  //获取压缩文件对象
  zipfile zf = new zipfile(filename);

  //遍历文件条目
  enumeration<? extends zipentry> items = zf.entries();
  while (items.hasmoreelements()) {
   zipentry item = items.nextelement();
   string filepath = zf.getname().substring(0,
     zf.getname().lastindexof("."))
     + file.separator + item.getname();
   file filedir = new file(filepath.substring(0,
     filepath.lastindexof("/")));
   if (!filedir.exists()) {
    filedir.mkdirs();
   }

   //从流中读取文件
   outputstream out = new fileoutputstream(filepath);
   inputstream in = zf.getinputstream(item);
   byte[] temp = new byte[1024];
   int len = 0;
   while ((len = in.read(temp)) > 0) {
    out.write(temp, 0, len);
   }
   in.close();
   out.close();
  }
  zf.close();
 }


 public static void zip(string filename,string... files) throws ioexception{
  //构造压缩文件输出流
  zipoutputstream zos=new zipoutputstream(new fileoutputstream(filename));
  for(int i=0,size=files.length;i<size;i++){
   //创建压缩实体
   zipentry entry=new zipentry(files[i].substring(files[i].lastindexof("/")+1));
   zos.putnextentry(entry);
   //将文件内容输出到压缩流中
   inputstream is=new fileinputstream(files[i]);
   int count=0;
   byte[] buffer=new byte[1024];
   while((count=is.read(buffer))>=0){
    zos.write(buffer, 0, count);
   }
   zos.flush();
   zos.closeentry();
   is.close();
  }
 }
}



通过java api实现解压缩zip示例