부스트 사이트에서 예제와 같이 파일의 gzip/zlib 압축 해제를 구현했습니다.부스트 gzip 압축 해제 바이트 배열
void CompressionUtils::Inflate(std::ifstream& inputFile,
std::ofstream& outputFile)
{
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
in.push(boost::iostreams::gzip_decompressor());
in.push(inputFile);
boost::iostreams::copy(in, outputFile);
}
이 작동합니다. 또한 압축 된 나머지 JSON 서비스를 기반으로하는 소켓에서 데이터를 읽는 중입니다. 메모리 기반 구현을 작성하고 얼마나 어려울 수 있는지 생각했습니다. 글쎄, 나는 스트림과 스트림 버퍼를 이해하지 못한다는 것을 알아 냈다. 나는 지난 몇 년 동안 자바를 비난했다.) 그래서 나는이 길을 시작했다.
void CompressionUtils::Inflate(char* compressed,
int size,
char* decompressed)
{
boost::iostreams::stream<boost::iostreams::array_source> source(compressed,size);
//std::stringstream str;
boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
in.push(boost::iostreams::gzip_decompressor());
in.push(source);
//boost::iostreams::copy(in, str);
}
는하지만 같은 딱하다 나는 기본적으로 압축 스트림의 압축 해제 char*
표현을 얻을하는 데 사용할 수있는 스트림의 종류에. 이것은 쉽고, 아마 그렇습니다. 그러나 나는 실패한 시도로 끝나는 지난 몇 시간을 낭비하고 있습니다.
답변 해 주셔서 감사합니다. 나는 그것을 시도 할 것이다. –