¿De todos modos puedo transferir datos de fstream
(un archivo) a stringstream
(una secuencia en la memoria)?¿Copiar datos de fstream a stringstream sin buffer?
Actualmente, estoy usando un búfer, pero esto requiere el doble de memoria, porque necesita copiar los datos en un búfer, luego copie el búfer en el flujo de cadenas y hasta que elimine el búfer, los datos se duplican en la memoria
std::fstream fWrite(fName,std::ios::binary | std::ios::in | std::ios::out);
fWrite.seekg(0,std::ios::end); //Seek to the end
int fLen = fWrite.tellg(); //Get length of file
fWrite.seekg(0,std::ios::beg); //Seek back to beginning
char* fileBuffer = new char[fLen];
fWrite.read(fileBuffer,fLen);
Write(fileBuffer,fLen); //This writes the buffer to the stringstream
delete fileBuffer;`
¿Alguien sabe cómo puedo escribir un archivo completo en una secuencia de cadenas sin usar un buffer intermedio?
Cuál es el punto? ¿Estás tratando de mejorar el rendimiento? Es probable que necesites abandonar 'fstream' en ese caso, iostreams son LENTOS. ¿Estás tratando de disminuir tu huella de memoria? Leer el archivo en trozos en lugar de todos a la vez podría ayudar con eso. –