我有一个巨大的输入文件,大小为 TB(它是 gzipped (.gz))。
我需要单独读取每一行,然后决定是否将其添加到新文件中。
输出文件的大小也预计为 TB,但较小,因为我不会添加所有文件。
有没有办法使用标准库在 C++ 中执行此操作?我不想使用升压。这可能吗?
最佳答案
标准 C++ 库不处理 gzip 格式。标准 C 库也没有。我不知道提升。
但你当然可以使用 zlib ,如果 C 的使用令人望而生畏,我相信它带有 C++ 包装器。
顺便说一句,尽管理论上可行,但附加到 gzip 文件通常不是一个好主意。但是你失去了很多压缩,因为算法需要重置,从而失去上下文。但是,您可以打开压缩流并向其写入,因此无需将未压缩文件写入磁盘。我想这就是您查询所需的全部内容。
关于c++ - 如何在不解压缩的情况下创建并附加到 gz 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25952415/