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

时间:2015-09-08 20:12:57

标签: c++ file fstream

我正在开发一个小型的Filestoresystem,它应该存储 一些文件,如.png,等等。 , 所以我成功地从.png向量中的char读取了字节,向量的大小与图片的大小相同(应该没问题)。 然后,我想将字节保存在另一个.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中。 我在每次打开和阅读后都进行了测试,如果打开等等,一切正常(没有出现错误代码)。

1 个答案:

答案 0 :(得分:4)

这部分看起来很奇怪:

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

Data.size()提示数据是std :: vector,因此&amp; Data实际上是错误的,它应该是(char*)Data.data()