我有以下代码 -
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
答案 0 :(得分:3)
答案 1 :(得分:2)
关闭后zos,
outputStream.size()
会为您提供写入的字节数。您必须允许任何ZIP标头大小为空ZIP文件。
答案 2 :(得分:1)
请参阅: http://www.java-examples.com/get-number-entries-zip-file-example
和
Count files in ZIP's directory - JAVA, Android
和
答案 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”。如果列表不为空,我为字符串分配了一个空值并将其返回给调用函数。