9.4. 文件流

C++ 标准在 fstream 头文件中定义了几个文件流。 这些流不能接受 boost::filesystem::path 类型的参数。 由于 Boost.Filesystem 库很有可能被包含在 C++ 标准的 Technical Report 2 中,所以这些文件流将通过相应的构造函数来进行扩展。 为了当前可以让文件流与类型为 boost::filesystem::path 的路径信息一起工作,可以使用头文件 boost/filesystem/fstream.hpp。 它提供了对文件流所需的扩展,这些都是基于 Technical Report 2 即将加入 C++ 标准中的。

  1. #include <boost/filesystem/fstream.hpp>
  2. #include <iostream>
  3.  
  4. int main()
  5. {
  6. boost::filesystem::path p("test.txt");
  7. boost::filesystem::ofstream ofs(p);
  8. ofs << "Hello, world!" << std::endl;
  9. }

不仅是构造函数,还有 open() 方法也需要重载,以接受类型为 boost::filesystem::path 的参数。