使用 fstream 将其他文件保存在自己的数据存储中

Saving other files in a own data store with fstream

我当时正在开发一个小的Filestoresystem,应该存储 一些文件,如 .png's 等等。 , 所以我成功地从char向量中的.png中读取了字节,向量的大小与图片大小相同(应该没问题)。 然后,我想将字节保存在另一个 .png.

其实我创建文件是成功的,但是文件是空的

这是最重要的代码,我猜:

void storedFile::saveData(char Path[]){

std::fstream file;
file.open(Path,std::ios::trunc|std::ios::out|std::ios::binary);
if(!file.is_open())
    std::cout << "Couldn´t open saved File (In Func saveData())" << std::endl;
file.write((char*)&Data,sizeof(char) * Data.size());
file.close();}

我认为我做对了,但它不起作用。

同样,.png 的字节存储在 Data 中。 我在每次打开和阅读后都进行了测试,如果打开等等,一切正常(没有出现错误代码)。

这部分看起来很奇怪:

file.write((char*)&Data,sizeof(char) * Data.size());
           ^^^^^^^^^^^^

Data.size()是提示data是一个std::vector,所以&Data其实是错误的,应该是(char*)Data.data()