C++ 二进制读写文件的方法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-13 06:22   11   0

开发过程,遇见将文件以二进制的方式读取到缓存中的场景,于是在这里记录一下,方便以后复用。

读文件

void readFile(string& filePath, std::vector<unsigned char>& data )
{
 ifstream file(filePath.c_str(), std::ios::in | std::ios::binary);
 if(!(file.is_open()))
 {
  return;
 }

 file.seekg(0, std::ios::end); //定位输入流结束位置
 std::ios::pos_type endPos = file.tellg(); //获取输入流结尾指针
 unsigned long fileLen = static_cast<unsigned long>(endPos); //获取输入数据大小

 file.seekg(0, std::ios::beg); //定位输入流开始位置
 data.resize(fileLen);
 file.read((char*)(&data[0]), fileLen); //将输入数据读取到缓存中
 //自动关闭文件
}

写文件

void writeFile(string& filePath, vector<unsigned char> data )
{
 ofstream file(filePath.c_str(), std::ios::out | std::ios::binary);
 if(!(file.is_open()))
 {
  return;
 }
 file.write((char*)&data[0], data.size()); //将数据写到文件中
 //自动关闭文件

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP