博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 生成zip文件并导出
阅读量:6587 次
发布时间:2019-06-24

本文共 2104 字,大约阅读时间需要 7 分钟。

总结一下,关于Java下载zip文件并导出的方法,浏览器导出。

     String downloadName = "下载文件名称.zip";        downloadName = BrowserCharCodeUtils.browserCharCodeFun(request, downloadName);//下载文件名乱码问题解决                //将文件进行打包下载        try {            OutputStream out = response.getOutputStream();            byte[] data = createZip("/fileStorage/download");//服务器存储地址            response.reset();            response.setHeader("Content-Disposition","attachment;fileName="+downloadName);            response.addHeader("Content-Length", ""+data.length);            response.setContentType("application/octet-stream;charset=UTF-8");            IOUtils.write(data, out);            out.flush();            out.close();        } catch (Exception e) {            e.printStackTrace();        }

 

 

//获取下载zip文件流

public byte[] createZip(String srcSource) throws Exception{        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();        ZipOutputStream zip = new ZipOutputStream(outputStream);        //将目标文件打包成zip导出        File file = new File(srcSource);         a(zip,file,"");        IOUtils.closeQuietly(zip);        return outputStream.toByteArray();    }

 

public void a(ZipOutputStream zip, File file, String dir) throws Exception {            //如果当前的是文件夹,则进行进一步处理            if (file.isDirectory()) {                //得到文件列表信息                File[] files = file.listFiles();                //将文件夹添加到下一级打包目录                zip.putNextEntry(new ZipEntry(dir + "/"));                dir = dir.length() == 0 ? "" : dir + "/";                //循环将文件夹中的文件打包                for (int i = 0; i < files.length; i++) {                    a(zip, files[i], dir + files[i].getName());         //递归处理                }            } else {   //当前的是文件,打包处理                //文件输入流               BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));               ZipEntry entry = new ZipEntry(dir);               zip.putNextEntry(entry);               zip.write(FileUtils.readFileToByteArray(file));               IOUtils.closeQuietly(bis);               zip.flush();               zip.closeEntry();            }    }

 

转载地址:http://dnhno.baihongyu.com/

你可能感兴趣的文章
spring boot 1.5.4 整合webService(十五)
查看>>
modsecurity(尚不完善)
查看>>
在mac os中设置环境变量
查看>>
获取.propertys文件获取文件内容
查看>>
Redis3.0.5配置文件详解
查看>>
Keepalived+Nginx实现高可用
查看>>
[转]如何阅读systemstate dump
查看>>
Know about Oracle RAC Heartbeat
查看>>
JQuery——实现Ajax应用
查看>>
前端05.js入门之BOM对象与DOM对象。
查看>>
CISCO路由器NTP服务器配置
查看>>
PMON: TERMINATING INSTANCE DUE TO ERROR 600 on 8i
查看>>
voice lab2 – GK Operations
查看>>
MongoDB MapReduce
查看>>
Nginx学习日记第五篇 -- upstream及fastcgi
查看>>
oracle kill所有plsql developer进程
查看>>
12c rac 实例无法启动之磁盘组空间耗尽
查看>>
Win10右键添加获取管理员权限
查看>>
keepalived双机热备原理及实例部署LVS+keepalived
查看>>
Ubuntu安装配置JDK、Tomcat、SVN服务器
查看>>