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

本文实例讲述了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程序设计有所帮助。

(0)

相关推荐

  • java生成压缩文件示例代码

    代码: 复制代码 代码如下: import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream; import org.apache.tools.zip.ZipEntry;import org.apache.tools.zip.ZipOutputStream; /**  * @project: Test  * @author

  • 实例展示使用Java压缩和解压缩7z文件的方法

    压缩为7z文件 首先网络上对7z的压缩内容很少. 尤其是java调用进行压缩的是更少了. 一下是自己完成的一个压缩. 本人进行了测试是成功的. 将压缩的流写如磁盘一个压缩文件中. 然后使用7z的压缩软件进行打开解压. 7-zip的开源项目7-zip-JBinding项目地址(sourceforge) 不多说,调用7z源码进行压缩的方法如下. public byte[] lzmaZip(String xml) throws IOException{ BufferedInputStream inSt

  • Java操作Ant压缩和解压文件及批量打包Anroid应用

    实现zip/tar的压缩与解压 java中实际是提供了对  zip等压缩格式的支持,但是为什么这里会用到ant呢? 原因主要有两个: 1. java提供的类对于包括有中文字符的路径,文件名支持不够好,你用其它第三方软件解压的时候就会存在乱码.而ant.jar就支持文件名或者路径包括中文字符. 2. ant.jar提供了强大的工具类,更加方便于我们对压缩与解压的操作. 注意事项: 1. 首先说明一下,关于皮肤或者类似于皮肤的Zip包,实际上公司可能会根据自己的规定或需求,自定义压缩包文件的结尾,实

  • Java中如何调用cmd压缩文件

    今天在做一个java调用windows的压缩命令时遇到一奇怪问题代码如下: 复制代码 代码如下: String cmd ="C:/Program Files (x86)/WinRAR/rar.exe a c:/test.rar c:/test.log"; //System.out.println(cmd);Process proc = Runtime.getRuntime().exec(cmd); 以上代码在Xp,win7,windows server2003执行完全正常发现将代码转移

  • Java实现文件压缩与解压的示例[zip格式,gzip格式]

    Java实现ZIP的解压与压缩功能基本都是使用了Java的多肽和递归技术,可以对单个文件和任意级联文件夹进行压缩和解压,对于一些初学者来说是个很不错的实例. zip扮演着归档和压缩两个角色:gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩. Java I/O类库还收录了一些能读写压缩格式流的类.要想提供压缩功能,只要把它们包在已有的I/O类的外面就行了.这些类不是Reader和Writer,而是Inpu

  • Java创建ZIP压缩文件的方法

    本文实例讲述了Java创建ZIP压缩文件的方法.分享给大家供大家参考.具体如下: 这里注意:建议使用org.apache.tools.zip.*包下相关类,否则可能会出现中文乱码问题. /** * 压缩文件夹 * @param sourceDIR 文件夹名称(包含路径) * @param targetZipFile 生成zip文件名 * @author liuxiangwei */ public static void zipDIR(String sourceDIR, String target

  • 使用Java生成jpg与压缩图片为jpg文件的代码示例

    Java生成jpg格式图片: package other.pic; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.RandomAccessFile; import java.awt.imag

  • Java解压缩zip - 解压缩多个文件或文件夹实例

    Java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参数列表里面... ZipFiles(zip,"abc",new File("d:/English"),new File("d:/发放数据.xls")); 测试文件目录结构: 测试的压缩内容:English文件夹和同级的两个excel文件 File[]

  • java 压缩和解压缩Zip、Jar、Gzip文件实例代码

    我们经常会使用WinZIP等压缩软件将文件进行压缩以方便传输.在java里面也提供了将文件进行压缩以减少传输时的数据量的类,可以很方便的将文件压缩成ZIP.JAR.GZIP等形式,GZIP主要是在Linux系统下的压缩文件. 下面主要讲的就是ZIP形式的压缩文件,而JAR.GZIP形式的压缩文件也是类似的用法. ZIP是一种很常见的压缩形式,在java中要实现ZIP的压缩主要用到的是java.util.zip这个包里面的类.主要有ZipFile. ZipOutputStream.ZipInput

  • Java压缩文件ZIP实例代码

    提示:java.util.zipoutputstream java API压缩为zip文件 代码: 复制代码 代码如下: package com.gaoqi.test;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.zip.ZipEntry;import java.util.zip.ZipOu

  • java压缩zip文件中文乱码问题解决方法

    通常用java来打包文件生成压缩文件后,有如下两个地方会出现乱码 : 1.内容的中文乱码问题,这个问题网上很多人给出了解决方法,主要有两种方法:一是修改sun的源码:另一个是使用开源的类库org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,这两个类ant.jar中有,可以直接下载使用即可,毫无疑问,选择后者更方便 2.压缩文件注释的中文乱码问题:zos.setComment("中文测试");这个问题网上对

  • java压缩多个文件并且返回流示例

    这个类可以压缩多个文件并且返回流,在程序中可以再操作返回的流做其它功能,比如验证MD5,下面看代码吧 复制代码 代码如下: /*** 方法描述:<b>测试类</b></br>*/public class TestFileStream{ //文件和压缩包存储的位置StringtempFilePath="C:/temp/"List<String>fileList=newArrayList<String>();fileList.ad

  • java使用gzip实现文件解压缩示例

    复制代码 代码如下: package com.cjonline.foundation.cpe.action; import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.

随机推荐