java实现文件的压缩下载

     String[] names={ "one.jpg" , "two.jpg" , "three.jpg" , "four.jpg" };
     //四个文件流
     FileInputStream input1 = new FileInputStream( new File( "文件路径" ));
     FileInputStream input2 = new FileInputStream( new File( "文件路径" ));
     FileInputStream input3 = new FileInputStream( new File( "文件路径" ));
     FileInputStream input4 = new FileInputStream( new File( "文件路径" ));
     FileInputStream[] inputs={input1,input2,input3,input4};
     //ZIP打包图片
     File zipFile = new File( "压缩文件存放路径" );
     byte [] buf = new byte [ 1024 ];
     int len;
     ZipOutputStream zout= new ZipOutputStream( new FileOutputStream(zipFile));
     for ( int i = 0 ; i < inputs.length; i++) {
       FileInputStream in =inputs[i];
       zout.putNextEntry( new ZipEntry(names[i])); 
       while ((len = in.read(buf)) > 0 ) {
         zout.write(buf, 0 , len);
       }
       zout.closeEntry();
       in.close();
     }
     zout.close();
     //下载图片
     FileInputStream zipInput = new FileInputStream(zipFile);
     OutputStream out = response.getOutputStream();
     response.setContentType( "application/octet-stream" );
     response.setHeader( "Content-Disposition" , "attachment; filename=images.zip" );
     while ((len=zipInput.read(buf))!= - 1 ){
       out.write(buf, 0 ,len);
     }
     zipInput.close();
     out.flush();
     out.close();
     //删除压缩包
     zipFile.delete();

你可能感兴趣的:(java实现文件的压缩下载)