当前位置: 移动技术网 > IT编程>开发语言>Java > 通过java api实现解压缩zip示例

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

通过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();
  }
 }
}



如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网