estoy leyendo un archivo comprimido con gzip usando iostreams Boost: La siguiente funciona bien:¿Puede aumentar iostreams leer y comprimir archivos gzip sobre la marcha?
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);
Sin embargo, yo no quiero recibir el golpe de memoria de lectura de todo un archivo comprimido con gzip en la memoria. Quiero poder leer el archivo de forma incremental.
Por ejemplo, si tengo una estructura de datos X que se inicializa desde istream,
X x;
x.read(in);
falla. Presumiblemente, esto se debe a que tendremos que volver a poner caracteres en la secuencia si estamos realizando transmisiones parciales. ¿Alguna idea de si impulsar iostreams apoya esto?
¿Podría hacer una operación tal como llamar a 'getline()' 'luego comprimir()' a través de un bucle de trabajo para usted? – user99545
@ user99545: No: porque X se crea a sí mismo a partir de datos binarios. – ATemp
No veo por qué no. He usado boost iostreams para leer y escribir streams comprimidos zlib de esta manera. – Ferruccio