问题:
问题代码
@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();}
重新启动代码即可