多个文件进行压缩
1. /** 2. * 将文件字节数组压缩 3. * 4. * @param fileByteArrayList 文件内容 5. * @return zip包文件内容 6. */ 7. public byte[] getZipByteArray(List<byte[]> fileByteArrayList) { 8. ByteArrayOutputStream zipContentStream = null; 9. ZipOutputStream zos = null; 10. try { 11. //初始化结果流 12. zipContentStream = new ByteArrayOutputStream(); 13. zos = new ZipOutputStream(new BufferedOutputStream(zipContentStream)); 14. //设置压缩级别 15. zos.setLevel(8); 16. for (byte[] fileByteArray : fileByteArrayList) { 17. //获取文件名称 18. String fileNameStr = "文件名称" + System.currentTimeMillis() + ".xls"; 19. //zip文件中写入文件内容 20. zos.putNextEntry(new ZipEntry(fileNameStr)); 21. zos.write(fileByteArray); 22. } 23. 24. } catch (Exception e) { 25. LOGGER.error("打压缩包异常:{}", e); 26. return null; 27. } finally { 28. try { 29. if (zos != null) { 30. zos.close(); 31. } 32. } catch (IOException e) { 33. LOGGER.error("打压缩包异常:{}", e); 34. } 35. } 36. return zipContentStream.toByteArray(); 37. }