解决Java下载Zip压缩文件,解压后报不可预料的压缩文件末端

您所在的位置:网站首页 java实现浏览器下载文件打开 解决Java下载Zip压缩文件,解压后报不可预料的压缩文件末端

解决Java下载Zip压缩文件,解压后报不可预料的压缩文件末端

2024-06-30 10:15| 来源: 网络整理| 查看: 265

网上找到的问题原因是:ZipOutputStream的流没有关闭

其实说的也没错,但是我们都知道现在的java是可以自动关闭的,如下:

try(

ZipOutputStream zos = new ZipOutputStream(fileOutputStream)

){}

 

尽管如此,还是会报该错误,原因就在于这个关闭流的时机是在整体try执行完之后关闭,而我们一般会在try里面直接写respones的返回流信息

response.setContentType("application/octet-stream"); response.addHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8") + ".zip"); outputStream = response.getOutputStream(); outputStream.write(data);

致使还没自动关闭ZipOutputStream 流就已经输出了,所以我们要在返回respones之前手动关闭ZipOutputStream的流



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3