力为的技术博客

联系 聚合 管理
  154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks


1. 把文件读入到buffer
      std::ifstream ifs("d:\\test.jpg", std::ios::in | std::ios::binary);
      std::vector<char> data((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>());

注意:这里使用的是stream buffer的迭代器,而不是stream迭代器。因为这里的以binary把数据保存到buffer,若用stream,则以文本格式。

2. boost::iostream
boost::iostreams::stream<boost::iostreams::array_source> stream((const char*)buffer, sz);
然后跟使用istream一样使用即可。


3. 把buffer存入stream
stl提供的stream有fstream系列和stringstream系列。stringstream也可以存放binary格式。这里用boost提供的bufferstream,让代码看起来更简介。
      boost::interprocess::bufferstream input_stream(&data[0], data.size());
      output(input_stream, "test.jpg");
posted on 2012-11-07 09:43 力为 阅读(3855) 评论(0)  编辑 收藏 引用 所属分类: 5. GP&STL&BOOST

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理