String zipFile = /D:/+ ".zip";
   StringOperator.zip(filePath, zipFile);
   InputStream is = null;
   OutputStream os = null;
   BufferedInputStream bis = null;
   BufferedOutputStream bos = null;
   try {
    response.setCharacterEncoding("utf-8");
    response.addHeader("Content-disposition", "attachment;filename=" + folderFileName + ".zip");
    is = new FileInputStream(zipFile);
    bis = new BufferedInputStream(is);
    os = response.getOutputStream();
    bos = new BufferedOutputStream(os);
    
    int read = 0;
    byte[] bytes = new byte[8072];
    while((read = bis.read(bytes, 0, bytes.length)) != -1){
     bos.write(bytes, 0, read);
    }
    bos.flush();
   } catch (Exception e) {
    e.printStackTrace();
   }finally{
    bos.close();
    os.close();
    bis.close();
    is.close();
   }

/** 
     * 压缩 
     *  
     * @param sourceFile 
     *            压缩的源文件 如: c:/upload 
     * @param targetZip 
     *            生成的目标文件 如:c:/upload.zip 
     */ 
    public static void zip(String sourceFile,String targetZip){  
          
          Project prj = new Project();  
            
          Zip zip = new Zip();  
            
          zip.setProject(prj);  
            
          zip.setDestFile(new File(targetZip));//设置生成的目标zip文件File对象  
            
          FileSet fileSet = new FileSet();  
            
          fileSet.setProject(prj);  
            
          fileSet.setDir(new File(sourceFile));//设置将要进行压缩的源文件File对象 
            
          zip.addFileset(fileSet);  
 
          zip.execute();  
 
    }

读写ZIP文件的更多相关文章

  1. python读写zip文件

    zipfile.ZipFile(fileName[, mode[, compression[, allowZip64]]]) fileName是没有什么疑问的了. mode和一般的文件操作一样,'r' ...

  2. 【.NET深呼吸】Zip文件操作(2):动态生成Zip文档

    通过前面一篇烂文的介绍,大伙儿知道,ZipArchive类表示一个zip文档实例,除了用上一篇文章中所列的方法来读写zip文件外,还可以直接通过ZipArchive类,动态生成zip文件. 文件流操作 ...

  3. JAVA核心技术I---JAVA基础知识(二进制文件读写和zip文件读写)

    一:二进制文件读写 (一)写文件 –先创建文件,写入数据,关闭文件 –FileOutputStream, BufferedOutputStream,DataOutputStream –DataOutp ...

  4. 读写ZIP&JAR文件

    1. ZipEntry 是包括目录的,也就是目录也被当做是一个单独的Entry,在列出它下面的文件之前先列出这个directory entry. 这个在解压ZIP文件的的时候特别有用,我们要先创建这个 ...

  5. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  6. Orchard官方文档翻译(三) 通过zip文件手动安装Orchard

    原文地址:http://docs.orchardproject.net/Documentation/Manually-installing-Orchard-zip-file 想要查看文档目录请用力点击 ...

  7. PHP 解压zip文件的函数封装

    /** * zip文件解压 * * @param $zipFilePath zip文件的路径,可以不加zip文件后缀.如果其他类型的文件伪装成zip解压也会失败 * @param $directory ...

  8. Python使用openpyxl读写excel文件

    Python使用openpyxl读写excel文件 这是一个第三方库,可以处理xlsx格式的Excel文件.pip install openpyxl安装.如果使用Aanconda,应该自带了. 读取E ...

  9. Android 解压zip文件你知道多少?

    对于Android常用的压缩格式ZIP,你了解多少? Android的有两种解压ZIP的方法,你知道吗? ZipFile和ZipInputStream的解压效率,你对比过吗? 带着以上问题,现在就开始 ...

随机推荐

  1. object-单例设计模式

    1.什么是单例?       单例是一种数据共享的方法,其实就是等同于c语言中的全局变量.在整个程序生命周期内,该对象只有一份存在内存中,可以在多个对象之间共享数据 单例其实就相当于一个类只能有一个实 ...

  2. c# .net sha256 16进制 64位 签名

    public static string GetSHA256hash(string input, string _input_charset) { byte[] clearBytes = Encodi ...

  3. MySQL中order by中关于NULL值的排序问题

    MySQL中order by 排序遇到NULL值的问题 MySQL数据库,在order by排序的时候,如果存在NULL值,那么NULL是最小的,ASC正序排序的话,NULL值是在最前面的. 如果我们 ...

  4. [系统开发] Bind DNS 管理系统

    一.问题的产生 很多公司的 DNS 是用 BIND 建立的:DNS 服务非常重要,BIND 功能虽然强大,但是是基于配置文件进行管理的,管理员对 DNS 进行的任何操作都要通过修改配置文件来实现,稍不 ...

  5. Android五:Activity

    生命周期: onCreate onStart onResume onPause:在该状态如果有优先级更高的程序,那此进程可能被kill;如果是被重新执行,则回到onResume状态. onStop : ...

  6. Android Gradle实用技巧——APK文件名中加上SVN版本号,日期等

    有时候,我们会希望能把APK文件名上带上打包日期,打包时svn的版本号,应用版本号等.当然这些也可以手动添加,但是手动的话也未免太不优雅了,而且可能会出错. 利用Gradle,我们可以让打包出来的ap ...

  7. Redis 内存使用优化与存储

    Redis 常用数据类型 Redis 最为常用的数据类型主要有以下五种: • String • Hash • List • Set • Sorted set 在具体描述这几种数据类型之前,我们先通过一 ...

  8. Codeforces Round #356 (Div. 2)A. Bear and Five Cards(简单模拟)

    A. Bear and Five Cards time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  9. Calculations are rather interesting

    Calculations are rather interesting, especially when some thoughts are involved therein.

  10. Android_ _开发技巧总结

    ===  1   1.对于过多的控件,功能类似,数量又多的,可以用include方法.在实现应用中,可以把控件放入List集合中. private void initView() { // TODO ...