如何检查Java中的ZIP文件是否为空?

时间:2012-06-29 08:32:32

标签: java zipoutputstream

我有以下代码 -

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文件是否为空?我可以使用任何财产吗?

谢谢, Raaz

5 个答案:

答案 0 :(得分:3)

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

您可以调用

size()

方法

答案 1 :(得分:2)

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

答案 2 :(得分:1)

答案 3 :(得分:0)

@Raaz,请完成此link

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

zipEntry.getName(); // name of the file contained by zip.
zipEntry.getSize(); // size of the file contained by zip.

答案 4 :(得分:0)

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

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