Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 合并2个大(500MB)拉链,其中可能包含同名文件/文件夹_Java_Zip_File Handling_Outputstream_Zipfile - Fatal编程技术网

Java 合并2个大(500MB)拉链,其中可能包含同名文件/文件夹

Java 合并2个大(500MB)拉链,其中可能包含同名文件/文件夹,java,zip,file-handling,outputstream,zipfile,Java,Zip,File Handling,Outputstream,Zipfile,我在JavaSpring应用程序中有这样一个场景,在目录结构中将大量数据分类后,我必须将它们导出为zip文件。由于数据量巨大,我会分批获取数据(比如说一次获取500个结果),将它们按类别和子类别进行排列,并将它们写入zip文件。由于获取和整理数据需要相当长的时间,我无法让我的zipOutputStream长时间处于打开状态,因此我正在为每个批次制作新的zip,然后将其数据附加到主zip文件中 在第一次提取之后,假设我制作了这个zip文件: batch_1.zip |_Catg A |_Sub

我在JavaSpring应用程序中有这样一个场景,在目录结构中将大量数据分类后,我必须将它们导出为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多个子类别


有没有其他方法来处理这种情况。

您有没有研究过zip文件系统?