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

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

读文件

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());	//将数据写到文件中
	//自动关闭文件

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值