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

Java实现多文件压缩打包的方法

程序员文章站 2024-02-14 10:38:34
本文实例讲述了java实现多文件压缩打包的方法。分享给大家供大家参考,具体如下: package com.biao.test; import java.io.f...

本文实例讲述了java实现多文件压缩打包的方法。分享给大家供大家参考,具体如下:

package com.biao.test;
import java.io.file;
import java.io.fileinputstream;
import java.io.fileoutputstream;
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 testzip {
  /**
   * 功能:压缩多个文件成一个zip文件
   * @param srcfile:源文件列表
   * @param zipfile:压缩后的文件
   */
  public static void zipfiles(file[] srcfile,file zipfile){
    byte[] buf=new byte[1024];
    try {
      //zipoutputstream类:完成文件或文件夹的压缩
      zipoutputstream out=new zipoutputstream(new fileoutputstream(zipfile));
      for(int i=0;i<srcfile.length;i++){
        fileinputstream in=new fileinputstream(srcfile[i]);
        out.putnextentry(new zipentry(srcfile[i].getname()));
        int len;
        while((len=in.read(buf))>0){
          out.write(buf,0,len);
        }
        out.closeentry();
        in.close();
      }
      out.close();
      system.out.println("压缩完成.");
    } catch (exception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    }
  }
  /**
   * 功能:解压缩
   * @param zipfile:需要解压缩的文件
   * @param descdir:解压后的目标目录
   */
  public static void unzipfiles(file zipfile,string descdir){
    try {
      zipfile zf=new zipfile(zipfile);
      for(enumeration entries=zf.entries();entries.hasmoreelements();){
        zipentry entry=(zipentry) entries.nextelement();
        string zipentryname=entry.getname();
        inputstream in=zf.getinputstream(entry);
        outputstream out=new fileoutputstream(descdir+zipentryname);
        byte[] buf1=new byte[1024];
        int len;
        while((len=in.read(buf1))>0){
          out.write(buf1,0,len);
        }
        in.close();
        out.close();
        system.out.println("解压缩完成.");
      }
    } catch (exception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    }
  }
  /**功能:
   * @param args
   */
  public static void main(string[] args) {
    //2个源文件
    file f1=new file("d:\\workspace\\flextest\\src\\com\\biao\\test\\abc.txt");
    file f2=new file("d:\\workspace\\flextest\\src\\com\\biao\\test\\test.zip");
    file[] srcfile={f1,f2};
    //压缩后的文件
    file zipfile=new file("d:\\workspace\\flextest\\src\\com\\biao\\test\\biao.zip");
    //testzip.zipfiles(srcfile, zipfile);
    //需要解压缩的文件
    file file=new file("d:\\workspace\\flextest\\src\\com\\biao\\test\\biao.zip");
    //解压后的目标目录
    string dir="d:\\workspace\\flextest\\src\\com\\biao\\test\\";
    testzip.unzipfiles(file, dir);
  }
}

更多关于java相关内容感兴趣的读者可查看本站专题:《java文件与目录操作技巧汇总》、《java数据结构与算法教程》、《java操作dom节点技巧总结》和《java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。