Java压缩多个文件到压缩包

Java多文件生成压缩包下载功能

public void zipInputFiles(HttpServletResponse response) {

        String fileName = "111.zip";

        try(ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream()); OutputStream out =null) {
            //下载压缩包
            response.reset();
            response.setCharacterEncoding("GBK");
            response.setContentType("application/multipart/form-data");
            //3.设置content-disposition响应头控制浏览器以下载的形式打开文件
            response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GBK"), "ISO-8859-1"));
            // 创建 ZipEntry 对象
            // 根据小区去.loss资源库筛选.loss文件
            File lossFile = new File("/Users/honey/Downloads/222464.txt");
            if (lossFile.exists()) {
                FileInputStream fileInputStream = new FileInputStream(lossFile);
                byte[] data = new byte[(int) lossFile.length()];
                fileInputStream.read(data);

                ZipEntry zipEntry =  new ZipEntry(lossFile.getName());
                zipOutputStream.putNextEntry(zipEntry);

                zipOutputStream.write(data);

                fileInputStream.close();
            } else {
                System.err.println("文件不存在");
            }


            File lossFile2 = new File("/Users/honey/Downloads/newFile.csv");
            if (lossFile2.exists()) {
                FileInputStream fileInputStream = new FileInputStream(lossFile2);
                byte[] data = new byte[(int) lossFile2.length()];
                fileInputStream.read(data);

                ZipEntry zipEntry =  new ZipEntry(lossFile2.getName());
                zipOutputStream.putNextEntry(zipEntry);

                zipOutputStream.write(data);

                fileInputStream.close();
            } else {
                System.err.println("文件不存在");
            }

        } catch (IOException e) {
            log.error(e.getMessage(), e);
        }

    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java调用Zip类批量压缩多个文件,此前有一个是压缩单个文件,也可参考,相关代码中可找到此源码。   public class ZipDemo extends JFrame{   JFileChooser fileChooser; //文件选择器   JList fileList; //待压缩文件列表   Vector files; //文件数据(待压缩文件)   JButton jbAdd; //增加文件按钮   JButton jbDelete; //删除文件按钮   JButton jbZip; //压缩按钮   JTextField target; //目标文件文本域   public ZipDemo(){   super("用ZIP压缩多个文件"); //调用父类构造函数   fileChooser=new JFileChooser(); //实例化文件选择器   files=new Vector(); //实例化文件数据Vector   fileList=new JList(files); //实例化已选择文件列表   jbAdd=new JButton("增加"); //实例化按钮组件   jbDelete=new JButton("删除");   jbZip=new JButton("压缩");   target=new JTextField(18);   JPanel panel=new JPanel(); //实例化面板,用于容纳按钮   panel.add(jbAdd); //增加组件到面板上   panel.add(jbDelete);   panel.add(jbZip);   JPanel panel2=new JPanel();   panel2.add(new JLabel("目标文件"));   panel2.add(target);   JScrollPane jsp=new JScrollPane(fileList);   Container container=getContentPane(); //得到容器   container.add(panel2,BorderLayout.NORTH); //增加组件到容器   container.add(jsp,BorderLayout.CENTER);   container.add(panel,BorderLayout.SOUTH);   jsp.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); //设置边界

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值