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());	//将数据写到文件中
	//自动关闭文件
发布了139 篇原创文章 · 获赞 122 · 访问量 4676

猜你喜欢

转载自blog.csdn.net/qq_39661206/article/details/105097026