这是情况:一个C++程序以有规律的方式无限生成数据。需要快速将数据存储在持久存储中,以免影响计算时间。不可能事先知道要存储的数据量。
阅读了这篇和这篇帖子之后,我最终采用了以下幼稚的策略:
阅读了这篇和这篇帖子之后,我最终采用了以下幼稚的策略:
- 创建一个
std::ofstream ofs
- 打开一个新文件
ofs.open("path/file", std::ofstream::out | std::ofstream::app)
- 使用运算符
<<
添加std::string - 在终止时关闭文件
ofs.close()
- 由于数据只会在之后被读取,因此是否可以使用二进制(
ios::binary
)文件存储?这样会更快吗? - 我已经理解
std::ofstream
应该自动刷新,那么我可以安全地使用它吗?是否有任何内存影响我应该注意?我是否需要优化std::ofstream
(改变其大小)? - 我应该担心文件越来越大吗?我需要在某个时候关闭它并打开一个新的吗?
- 使用
std::string
有一些缺点吗?是否可以避免一些隐藏的转换? - 使用
std::ofstream::write()
是否更有优势?