编辑:错误不在此代码中。前端下载错误。服务器上的 zip 很好,但是通过 js 下载它不起作用。
我正在将两个 xml 文件写入一个 zip 文件。我无法打开生成的文件(错误:没有文件也没有文件夹)。
元组是一个包含两个字符串(A 和 B)的类,我的 xml 内容。我首先尝试了不带closeEntry
和不带setSize
,结果是一样的。
有任何想法吗?我该如何调试呢?
private static byte[] createArchive(final Tuple<String, String> body) throws IOException {
try (final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final ZipOutputStream zos = new ZipOutputStream(bos)) {
final ZipEntry firstEntry = new ZipEntry("first.xml");
firstEntry.setSize(body.getA().getBytes().length);
zos.putNextEntry(firstEntry);
zos.write(body.getA().getBytes());
zos.closeEntry();
final ZipEntry secondEntry = new ZipEntry("second.xml");
secondEntry.setSize(body.getB().getBytes().length);
zos.putNextEntry(secondEntry);
zos.write(body.getB().getBytes());
zos.closeEntry();
zos.close();
return bos.toByteArray();
}
}