反正我可以从一个fstream
(文件)(在内存中的数据流)传输数据到stringstream
?将数据从fstream复制到没有缓冲区的串流中?
目前,我正在使用缓冲区,但这需要将内存翻倍,因为您需要将数据复制到缓冲区,然后将缓冲区复制到字符串流,直到删除缓冲区,数据才会被复制在记忆中。
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;`
有谁知道我怎么能写一个整个文件到一个stringstream而不使用inbetween缓冲区?
有什么意义?您是否在尝试提高吞吐量?在这种情况下,你可能需要抛弃'fstream',iostreams很慢。你想减少你的内存占用?一次读取文件而不是一次读取文件可以帮助解决这个问题。 – 2010-10-31 19:17:47