Я читаю gzip-файл, используя boost iostreams: отлично работает следующее:
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);
Тем не менее, я не хочу, чтобы в память читался весь сжатый gzip-файл. Я хочу иметь возможность читать файл постепенно.
Например, если у меня есть структура данных X, которая инициализирует себя из istream,
X x;
x.read(in);
терпит неудачу. Предположительно, это связано с тем, что нам, возможно, придется возвращать символы в поток, если мы делаем частичные потоки. Есть идеи, поддерживает ли boost iostreams это?
getline()
, а затемcompressing()
через цикл? - person user99545   schedule 29.02.2012