反正我可以從一個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