如何在不解压的情况下创建并附加到gz文件

How to create and append to a gz file without decompressing?

本文关键字:文件 gz 创建 情况下      更新时间:2023-10-16

我有一个巨大的输入文件,大小为TB(它是gzip(.gz))

我需要单独阅读每一行,并决定是否将其添加到新文件中。

输出文件的大小预计也是TB,但由于我不会添加所有文件,所以会更小。

有没有一种方法可以在C++中使用标准库来做到这一点?我不想使用助推。这可能吗?

标准C++库不处理gzip格式。标准的C库也是如此。我不知道助推。

但是你当然可以使用zlib,我相信如果使用C太令人生畏的话,它会附带一个C++包装器。

顺便说一句,虽然理论上是可能的,但附加到gzip文件通常不是一个好主意。但由于算法需要重置,因此会丢失大量压缩,从而丢失上下文。但是,您可以打开压缩流并对其进行写入,因此不需要将未压缩的文件写入磁盘。我想这就是您查询所需的全部内容。