将对象的内存读取出来的做法
#include <fstream>
#include <memory>
#include <stdio.h>
template<typename T>
uint64_t getFileSize(T& fs)
{
uint64_t cur_index = fs.tellg();
fs.seekg(0, std::ios::end);
uint64_t file_size = fs.tellg();
fs.seekg(cur_index, std::ios::beg);
return file_size;
}
int main()
{
std::ifstream fstream_instance("./1.jpg", std::ios::in | std::ios::binary);
uint64_t file_size = getFileSize(fstream_instance);
printf("file_size: %d \n", file_size);
uint64_t cur_index = fstream_instance.tellg();
printf("cur_index: %d \n", cur_index);
std::shared_ptr<uint8_t[]> sp_data(new uint8_t[file_size]);
fstream_instance.read((char*)(sp_data.get()), file_size);
std::ofstream ofs;
ofs.open("./2.jpg", std::ios::out | std::ios::binary);
ofs.write((char*)sp_data.get(), file_size);
ofs.close();
fstream_instance.close();
return 0;
}