java 先根据一个list生成一个文件,然后在压缩下载怎么实现

在线下载,不产生临时文件,或者产生,下载后删除。... 在线下载,不产生临时文件,或者产生,下载后删除。 展开
 我来答
犀利且温馨丶熊猫e
2018-03-21 · 知道合伙人软件行家
犀利且温馨丶熊猫e
知道合伙人软件行家
采纳数:214 获赞数:313
JavaWeb高级工程师 北大青鸟Java技术顾问

向TA提问 私信TA
展开全部
编码思路
(一)封装list集合信息使之输出到txt、excel等文件中;
(二)通过ZipOutputStream实现对文件压缩操作;
(三)使用HttpServlet提供与用户进行下载,下载完成后,删除文件。
更多追问追答
追问
我这个我知道,但是这个txt文件到压缩过程不知道怎么弄。
追答

txt文件压缩为zip核心代码

    /**
     * 压缩成ZIP 方法1
     * @param srcDir 压缩文件夹路径 
     * @param out    压缩文件输出流
     * @param KeepDirStructure  是否保留原来的目录结构,true:保留目录结构; 
     *                             false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
     * @throws RuntimeException 压缩失败会抛出运行时异常
     */
    public static void toZip(String srcDir, OutputStream out, boolean KeepDirStructure)
            throws RuntimeException{
        
        long start = System.currentTimeMillis();
        ZipOutputStream zos = null ;
        try {
            zos = new ZipOutputStream(out);
            File sourceFile = new File(srcDir);
            compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure);
            long end = System.currentTimeMillis();
            System.out.println("压缩完成,耗时:" + (end - start) +" ms");
        } catch (Exception e) {
            throw new RuntimeException("zip error from ZipUtils",e);
        }finally{
            if(zos != null){
                try {
                    zos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        
    }
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式