Io sto leggendo un file zippato con iostreams spinta: Il seguente funziona bene:È possibile potenziare gli iostream e leggere e comprimere i file compressi al volo?
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);
Tuttavia, non si vuole prendere il colpo ricordo di leggere un intero file compresso con gzip nella memoria. Voglio essere in grado di leggere il file in modo incrementale.
Ad esempio, se ho una struttura di dati X che si inizializza da istream,
X x;
x.read(in);
fallisce. Presumibilmente questo è dovuto al fatto che potremmo dover inserire i caratteri nello stream se stiamo eseguendo stream parziali. Qualche idea se l'iostreams boost lo supporta?
Would facendo un'operazione come chiamare 'getline()' 'quindi comprimere()' attraverso un lavoro di ciclo per voi? – user99545
@ user99545: No: perché X si crea da dati binari. – ATemp
Non vedo perché no. Ho usato boost iostreams per leggere e scrivere stream compressi con zlib in questo modo. – Ferruccio