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

使用ZipOutputStream类批量压缩文件zip

程序员文章站 2024-01-27 12:21:22
...

postmen参数:
使用ZipOutputStream类批量压缩文件zip

{"url":"D:\\2\\档案类型\\清产核资\\清产核资报表\\469005\\测试表.xls,D:\\2\\档案类型\\清产核资\\清产核资报表\\469005\\资产量化表.xls"}

Controller代码:

  public static void generateZip(OutputStream os,@RequestBody Map path) throws Exception {
    String url = path.get("url").toString();//获取参数,参数为要被压缩的文件url
     ZipOutputStream out = null;
     String[] arr = url.split(",");//将要被压缩多个文件utl分切成字符串数组
      try {
        byte[] buffer = new byte[1024];
        out = new ZipOutputStream(os); 
        for (int i=0;i<arr.length;i++) {
          String fileurl = arr[i];
          File file = new File(fileurl);
          FileInputStream fis = new FileInputStream(file);
          out.putNextEntry(new ZipEntry(file.getName()));
          int len;//读入需要下载的文件的内容,打包到zip文件
          while ((len = fis.read(buffer)) != -1) {
            out.write(buffer, 0, len);
          }
          out.flush();
          out.closeEntry();
          fis.close();
        }
      } catch (Exception e) {
          e.printStackTrace();
      } finally {
          if (out != null) {
            out.close();
          }
      }
  }

压缩完的文件:
使用ZipOutputStream类批量压缩文件zip