【发布时间】:2015-09-08 20:12:57
【问题描述】:
我当时正在开发一个小型文件存储系统,它应该存储
一些文件,如.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 中。
我在每次打开和阅读后测试,如果打开等等,一切正常(没有出现错误代码)。
【问题讨论】:
-
我们不知道
Data是什么,也不知道为什么std::fstream::write()会知道如何处理它。 -
我在这里没有发现任何问题,也许您可以在声明 Data 的位置添加行并打印 file.write 和 file.close 的结果会很有趣。
-
我们怎么知道 Data.size() > 0?数据到底是什么?