700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 关于zip包解压之后文件打开出现文件损坏的问题

关于zip包解压之后文件打开出现文件损坏的问题

时间:2018-08-31 14:05:52

相关推荐

关于zip包解压之后文件打开出现文件损坏的问题

问题:

问题代码

@Testvoid test1(){File file = new File("D:\\huang\\pretmp\\files\\wisdomAudit\\upload\\1560561335540670464-需求数据填报导出表.xlsx");try (FileInputStream in = new FileInputStream(file)){ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D:\\huang\\pretmp\\wwww.zip"));if (file.isDirectory()){File[] files = file.listFiles();for (File file1 : files) {zipOut.putNextEntry(new ZipEntry(file1.getName()));int temp;byte[] bytes = new byte[1024];while ((temp=in.read(bytes))!=-1){zipOut.write(bytes,0,temp);}}}else{zipOut.putNextEntry(new ZipEntry(file.getName()));int temp;byte[] bytes = new byte[1024];while ((temp=in.read(bytes))!=-1){zipOut.write(bytes,0,temp);}}}catch (Exception e){e.printStackTrace();}}

问题排查原因:是因为zip流没有关,因此将ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D:\\huang\\pretmp\\wwww.zip"));放到try-resource里面,会自动关流

@Testvoid test1(){File file = new File("D:\\huang\\pretmp\\files\\wisdomAudit\\upload\\1560561335540670464-需求数据填报导出表.xlsx");try (FileInputStream in = new FileInputStream(file);ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D:\\huang\\pretmp\\wwww.zip"));){if (file.isDirectory()){File[] files = file.listFiles();for (File file1 : files) {zipOut.putNextEntry(new ZipEntry(file1.getName()));int temp;byte[] bytes = new byte[1024];while ((temp=in.read(bytes))!=-1){zipOut.write(bytes,0,temp);}}}else{zipOut.putNextEntry(new ZipEntry(file.getName()));int temp;byte[] bytes = new byte[1024];while ((temp=in.read(bytes))!=-1){zipOut.write(bytes,0,temp);}}}catch (Exception e){e.printStackTrace();}

重新启动代码即可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。