连接两个压缩的字节数组 [英] concatenate two zipped byte arrays

查看:141
本文介绍了连接两个压缩的字节数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好我有一个map reduce工作,它根据一些分组算法​​将不同的字节数组合在一起。

Hello I am having a map reduce job which merges different byte arrays together based on some grouping algorithm.

我尝试使用Java Deflater单独压缩每个数组但是当我尝试提取生成的压缩字节数组时,它只是我提取的第一个子数组。

I tried zipping each array individually using Java Deflater but when I try to extract the resultant zipped byte array, it is only the first sub array that I extracted.

是否可能将一个压缩后的字节数组连接起来然后解压缩,或者情况不是这样?

Is it it possible byte arrays once zipped to be just concatenated and then extracted or this is not the case ?

什么我想要的是:

byte array1[] - zip
byte array2[] - zip
byte array3[] = append(array1,array2).
unzip resulting array3.

当我解压缩它时,我只收到数组1。

When I unzip it I receive only array 1.

推荐答案

zip文件是结构化的,它们不仅包含压缩数据。对于文件中的每个条目,都有一个本地标题和相应的条目数据。在文件的末尾有一个中央目录,它列举了归档中包含的所有zip条目以及这些条目的起始位置。您可能会想到一个大致如下的zip文件:

The zip files are structured and they contain not only "zipped" data. For each entry in the file there is a local header and corresponding entry data. At the end of the file there is a central directory which enumerates all zip entries contained in the archive and the offsets where these start. You may think of a zip file roughly like this:

[entry-header,data][entry-header,data].....[central dir with entry meta-data][end-of-file]

你不能只将两个zip文件合并为字节数组,因为结果不是有效的zip。

You cannot just "merge" two zip files as byte arrays because the result will not be a valid zip.

这篇关于连接两个压缩的字节数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆