boost gzip_compressor and gzip_decompressor
boost gzip_compressor and gzip_decompressor
我使用boost
的gzip_compressor
和'gzip_expressor'来压缩一些字符串。我正在压缩像这样的字符串
string compressedString;
{
filtering_ostream out;
out.push(gzip_compressor(gzip_params(gzip::best_compression)));
out.push(boost::iostreams::back_inserter(compressedString));
out.write(stringToBeCompressed.c_str(), stringToBeCompressed.size());
}
它工作得很好,但我无法解压缩。这是我的代码
std::string decompressedString;
{
filtering_ostream out;
out.push(gzip_decompressor());
out.push(boost::iostreams::back_inserter(decompressedString));
out.write(compressedString.c_str(), compressedString.size());
}
我做错了什么?
提前谢谢!
我找到了解决这个问题的方法。这是工作代码。
压缩部件
std::string compressedString;
{
filtering_ostream compressingStream;
compressingStream.push(boost::iostreams::gzip_compressor(gzip_params(gzip::best_compression)));
compressingStream.push(boost::iostreams::back_inserter(compressedString));
compressingStream << stringToBeCompressed;
boost::iostreams::close(compressingStream);
}
减压部分
std::string decompressedString;
{
boost::iostreams::filtering_ostream decompressingStream;
decompressingStream.push(boost::iostreams::gzip_decompressor());
decompressingStream.push(boost::iostreams::back_inserter(decompressedString));
decompressingStream << stringToBeDecompressed;
boost::iostreams::close(decompressingStream);
}
相关文章:
- ZLib GZIP Returning Z_BUF_ERROR(-5)
- 当命令失败时,gzip 会在 C++ 中返回错误代码吗?
- 带有 GZIP 压缩的原型
- 如何让 zlib 输出 gzip 页脚
- C++ mmap 到"fast" 与 gzip 文件的读取耦合
- EOF detection by ZLib Gzip API?
- 使用 libarchive 将 gzip 文件解压缩到内存
- zlib - gzip 的零压缩率
- 压缩算法(例如gzip、zip或snappy)的输出肯定小于输入吗
- 是否有GZIP的测试向量
- 如何通过跳过标头发送gzip instade deflate
- 使用 curl 解压缩 gzip 数据
- 使用 qCompress 使用 GZip 压缩字符串
- 如何将boost::iostreams::mapped_file_source与gzip输入文件一起使用
- Gzip 压缩/解压缩长字符数组
- C++/zlib/gzip压缩和C#GZipStream解压缩失败
- 可以提高iostream读取和压缩gzip文件的速度
- 提升 gzip 解压缩字节数组
- zlib和gzip生成不同的数据
- 将boost gzip压缩器封装在易于使用的函数/类中