1

我有以下代码 -

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(outputStream);

for (int i = 0; i < params.getGrades().size(); i++) {
generateReport(param1, param2, zos);
}

zos.flush();
zos.close();

在 generateReport 方法中,我有代码将我的报告生成为 xls 文件并将它们添加到 ZIP。

有什么方法可以检查 ZIP 文件中是否写入了任何文件,或者 ZIP 文件是否为空?有什么我可以使用的财产吗?

谢谢,拉兹

4

5 回答 5

3

您可以使用 java.util.zip 包中的ZipFile

您可以调用

size()

方法。

于 2012-06-29T08:40:05.103 回答
2

关闭后zos, outputStream.size()会给你写入的字节数。您必须允许空 ZIP 文件的 ZIP 标头大小。

于 2012-06-29T09:56:23.493 回答
0

@Didier - 我决定接受你关于返回值的建议,但最终这样做了 -

我没有检查文件是否已添加到 ZIP,而是检查了我试图写入 xls 文件(该文件又被添加到 ZIP 的文件)中的列表数据是否为空。如果它为空,那么我将错误值设置为“未生成文件”。如果列表不为空,我将一个空值分配给字符串并将其返回给调用函数。

于 2012-07-02T04:00:39.223 回答
0

@Raaz,请通过此链接

在那里你可以看到一个名为“ZipEntry”的类。它表示 zip 文件夹中包含的文件。它提供了一些有用的方法,例如:

zipEntry.getName(); // name of the file contained by zip.
zipEntry.getSize(); // size of the file contained by zip.
于 2012-06-29T08:52:41.743 回答