是否可以在Android中使用ZipOutputstream或GZIPOutputStream逐步添加?

时间:2014-09-01 22:48:13

标签: java android zip gzip

我的应用创建了大量输出,但只是很长时间。每次添加新输出时,它只是一个字符串(价值几百个字节)。

如果我可以逐步添加(即附加)到预先存在的GZIP(或Zip)文件,它将大大简化我的代码。这是否可能(特别是在Java中)?

我正在寻找能够创建可由第三方应用程序打开的文件的解决方案。

我意识到我可以解压缩文件,添加其他文本并将其再次压缩为新的blob。

由于

PVS

1 个答案:

答案 0 :(得分:0)

是。请参阅zlib发行版的示例目录中的C中的此示例:gzlog.hgzlog.c。它就是这样,允许您将简短的数据附加到gzip文件。它通过不压缩添加直到达到阈值,然后压缩到目前为止尚未压缩的内容来有效地执行。每次添加后,gzip文件都包含添加,并且是有效的gzip文件。该代码还可以防止在追加操作过程中发生系统崩溃,并在下一次追加操作时恢复文件。

尽管格式允许,但此代码并不简单地连接短gzip流。这会导致非常差的压缩。