gpt4 book ai didi

boost - 如何使用 C++ 中的 boost 库压缩文件 (gzip)

转载 作者:行者123 更新时间:2023-12-04 02:11:12 24 4
gpt4 key购买 nike

我正在尝试使用 boost 库 (gzip) 压缩文件。
这是一个简单的任务:假设我有文件 数据.xml 我需要将它压缩到 data.xml.gz .我什至可以使用默认的压缩值,没关系。

我尝试在 google 和 BOOST 页面中查找,但没有成功。

我有以下几点:

bool SyncFrequencyHistory::frequencyHistoryCompressFile(void)
{
printf("\r\n===== ACTION: frequencyHistoryCompressFile =====\r\n");

std::ifstream inStream(FREQUENCY_HISTORY_FILE, std::ios_base::in);
std::ofstream outStream(FREQUENCY_HISTORY_FILE_GZIP, std::ios_base::out);
boost::iostreams::filtering_streambuf<boost::iostreams::output> out;
out.push(boost::iostreams::gzip_compressor());
out.push(outStream);
boost::iostreams::copy(in, out);

return true;
}

FREQUENCY_HISTORY_FILE 具有 XML 文件的完整位置

FREQUENCY_HISTORY_FILE_GZIP 具有 XML.GZ 文件的完整位置

我知道几乎所有的代码都是错误的,但我不知道该以正确的方式编写代码。

最佳答案

基于以下tutorial ,我相信你的代码应该是:

bool SyncFrequencyHistory::frequencyHistoryCompressFile(void)
{
printf("\r\n===== ACTION: frequencyHistoryCompressFile =====\r\n");

std::ifstream inStream(FREQUENCY_HISTORY_FILE, std::ios_base::in);
std::ofstream outStream(FREQUENCY_HISTORY_FILE_GZIP, std::ios_base::out);
boost::iostreams::filtering_streambuf< boost::iostreams::input> in;
in.push( boost::iostreams::gzip_compressor());
in.push( inStream );
boost::iostreams::copy(in, outStream);

return true;
}

基本上,您读取输入,压缩它并保存数据

关于boost - 如何使用 C++ 中的 boost 库压缩文件 (gzip),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17449670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com