您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> ZipOutpuStream压缩文件问题,急需解决……

ZipOutpuStream压缩文件问题,急需解决……

来源:网络整理     时间:2016/6/28 8:36:53     关键词:

关于网友提出的“ ZipOutpuStream压缩文件问题,急需解决……”问题疑问,本网通过在网上对“ ZipOutpuStream压缩文件问题,急需解决……”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: ZipOutpuStream压缩文件问题,急需解决……
描述:

刚使用org.apache.tools.zip.ZipOutputStream 做了压缩打包下载功能,功能是实现了,不过发现压缩后的rar包打开后会提示winrar诊断错误,但是解压后压缩的文件都能打开没有损坏。不知为何会提示有文件损坏。请大家帮忙看看怎么解决这问题!先谢谢了 下边是代码: //压缩包输出流 ZipOutputStream zipStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream())); zipStream.setEncoding(Constants.FILEUPLOAD_ENCODING); //查找附件 DataList attsList = attHandler.findAttsByPackageId(pckId, code, fields, conn); for (int j = 0; j < attsList.size(); j++) { Data att = attsList.getData(j); BufferedInputStream in2 = null;     //如果是磁盘类型从磁盘下载     if(AttType.SELECT_VALUE_FIRST == attType.getInt(AttType.STORE_TYPE)){      File file = new File(att.getString(Att.FILESYSTEM_PATH),att.getString(Att.RANDOM_NAME));         in2 = new BufferedInputStream(new FileInputStream(file));     }else{         //获得附件内容         String sql = "SELECT ATT_CONTENT FROM " + attType.getString(AttType.ENTITY_NAME) + " WHERE ID = '"+att.getString(Att.ID)+"'";         pstm = conn.prepareStatement(sql);         rs = pstm.executeQuery();         InputStream stream = null;         if (rs.next()) {          stream = rs.getBinaryStream(Att.ATT_CONTENT);         }         //封装         in2 = new BufferedInputStream(stream);     }              //添加压缩包文件     ZipEntry zipEntry = new ZipEntry(att.getString(Att.ATT_NAME));     zipStream.putNextEntry(zipEntry);              //读写     byte[] b = new byte[1024];     int len = 0;     while ((len = in2.read(b)) != -1) {      zipStream.write(b, 0, len);      b = new byte[1024];     }     in2.close();     zipStream.closeEntry(); } //打包关闭 zipStream.close(); 下载后,打开压缩包会提示下图所示:


以上介绍了“ ZipOutpuStream压缩文件问题,急需解决……”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2125054.html

相关图片

相关文章