我没有找到确定是否值得使用的fstream
对象的一个方面的明确答案。 fstream
是否将其内容存储在内存中,还是更像是指向文件中某个位置的指针?我最初使用CFile
并将文本读入CString
,但如果可以避免,我宁愿不将整个文件放在内存中。
答案 0 :(得分:5)
fstream
是file stream
的缩写 - 它通常是与主机操作系统文件系统中的文件的连接。 (§27.9.1.1/ 1:“类basic_filebuf<charT,traits>
将输入序列和输出序列与文件相关联。”)
它(通常)缓冲来自该文件的一些信息,如果您正在使用一个小文件,它可能都恰好适合缓冲区。然而,在典型情况下,大多数数据将存储在磁盘上的文件中(或至少在OS的文件缓存中),其中fstream的缓冲区中有一小部分(通常为几千字节)。
如果您 希望在内存中使用缓冲区并使其像文件一样,您通常会使用std::stringstream
(或类似std::istringstream
的变体或std::ostringstream
)。