zoukankan      html  css  js  c++  java
  • IO流将多个文件进行压缩

    package com.pactera.zipUtil;

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    /**
    * 将多个文件压缩成zip文件
    * @author pactera
    *
    */
    public class ZipUtil {
    public static final int BUFFER = 2048;
    public static void zip(String [] filename, String destFile) throws Exception{
    BufferedInputStream origin = null;
    ZipOutputStream out = null;
    try {
    FileOutputStream dest = new FileOutputStream(destFile);
    out = new ZipOutputStream(new BufferedOutputStream(dest));
    byte data[] = new byte[BUFFER];
    for(int i = 0;i < filename.length;i++){
    //读取待压缩的文件
    File file = new File(filename[i]);
    FileInputStream fi = new FileInputStream(file);
    origin = new BufferedInputStream(fi,BUFFER);
    //创建zip实体,并添加进压缩包
    ZipEntry entry = new ZipEntry(file.getName());
    out.putNextEntry(entry);
    //写进压缩包
    int count;
    while((count = origin.read(data,0,BUFFER)) != -1){
    out.write(data, 0, count);

    }

    }
    } catch (Exception e) {
    e.printStackTrace();
    }finally{
    //关闭流
    if(origin != null){
    origin.close();
    }
    if(out != null){
    out.close();
    }
    }
    }
    public static void main(String[] args) throws Exception {
    zip(new String [] {"c://a.txt","d://c.docx"}, "c://c.zip");
    }

    }

    //可以将多个文件进行压缩,

    1.文件输出字符流将文件输出到指定目录.

    2.压缩字节流将文件输出字符流进行压缩控制.

    3.使用文件输入流来读取文件进入内存.

    4.创建zip实体,并将文件添加进压缩包.

    5.写入数据进压缩包.

    6.关闭流.

  • 相关阅读:
    使用vue做项目时,刷新页面,原本应该隐藏的东西闪一下
    input type="file" 上传文件的一些使用
    vue强制重新渲染
    元素focus页面不滚动不定位的JS处理
    js使用案例
    js使用setInterval简单实现一个时钟
    js日期封装方法
    scss简单使用总结
    JavaScript的内置对象(Global对象)
    JavaScript—Date对象详情
  • 原文地址:https://www.cnblogs.com/qadyyj/p/5341824.html
Copyright © 2011-2022 走看看