【发布时间】:2021-04-22 16:53:51
【问题描述】:
我已拆分 zip 文件,我尝试使用 Java 进行合并。但是我得到了 ZLIB 输入流错误的意外结束。对我做错了什么有什么想法吗?
File bigZip = new File("bigZip.zip");
List<String> zipList = Arrays.asList("src/14thmayreceipts.zip.001","src/14thmayreceipts.zip.002", "src/14thmayreceipts.zip.003");
Collections.sort(zipList);
ZipOutputStream outputStream = new ZipOutputStream(new FileOutputStream(bigZip));
for (String entry : zipList) {
readWriteZip(outputStream, entry);
}
outputStream.close();
}
private static void readWriteZip(ZipOutputStream out, String fileName) throws IOException, EOFException {
File file = new File(fileName);
ZipInputStream inStream = new ZipInputStream(new FileInputStream(file));
byte[] buffer = new byte[1024];
int len = 0;
for (ZipEntry e; (e = inStream.getNextEntry()) != null; ) {
out.putNextEntry(e);
while ((len = inStream.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
}
inStream.close();
}
【问题讨论】:
-
使用 OutputStreams 合并文件是个坏主意。您最好将两个文件的 zip 条目读入一个列表并将这些条目写入一个新的 zip 文件
-
将它们放入列表中?你能举个例子吗?拆分的 zip 文件来自我使用 7zip 拆分的较大 zip 文件。我正在尝试在 java 中再次组合它们。
标签: java zip eofexception zipoutputstream zipinputstream