我在JAVA-spring应用程序中有这种情况,在将目录结构中的数据分类为zip文件后,我必须导出大量数据。由于数据量巨大,我正在分批获取它(一次说500个结果),将它们安排在类别和子类别中并将它们写入zip文件。由于获取和排列数据需要花费大量时间,因此我无法保持zipOutputStream
打开这么长时间,所以我为每个批次创建新的zip,然后将其数据附加到主zip文件。
第一次获取后,假设我创建了这个zip文件:
batch_1.zip
|_Catg A
|_SubCatg A
|_FILE 1
|_FILE 2
|_SubCatg B
|_FILE 3
|_Catg B
|_SubCatg C
|_FILE 498
|_SubCatg D
|_FILE 499
|_FILE 500
同样,我为接下来的500个结果创建了一个zip:
batch_2.zip
|_Catg A
|_SubCatg A
|_FILE 501
|_Catg B
|_SubCatg D
|_FILE 999
|_Catg C
|_SubCatg E
|_FILE 555
现在,我必须合并这两个文件。两个zip文件都可能包含类别和子类别的目录。要检查现有文件夹,我需要迭代两个zip文件中的所有条目,这又是太昂贵了,因为可以有超过5000个结果,500个类别,2500 +子类别。
是否有其他方法可以处理这种情况。