我正在使用boost iostreams读取一个gzipped文件:
以下代码可以正常工作:
namespace io = boost::iostreams;
io::filtering_istream in;
in.push(boost::iostreams::basic_gzip_decompressor<>());
in.push(io::file_source("test.gz"));
stringstream ss;
copy(in, ss);
然而,我不希望读入整个压缩文件占用内存。我希望能够逐步读取文件。
例如,如果我有一个数据结构X,它可以从istream中初始化自己。
X x;
x.read(in);
失败了。可能是因为我们需要将字符放回到流中,如果我们正在进行部分流处理。有没有想法,是否boost iostreams支持此功能?
getline()
然后通过循环进行compressing()
这样的操作对您有用吗? - user99545