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

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

读文件

void readFile(string& filePath, std::vector& 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(endPos); //获取输入数据大小

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

写文件

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

 

你可能感兴趣的:(C++)