解决Java下载Zip压缩文件,解压后报不可预料的压缩文件末端 |
您所在的位置:网站首页 › java实现浏览器下载文件打开 › 解决Java下载Zip压缩文件,解压后报不可预料的压缩文件末端 |
网上找到的问题原因是: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 |