这个文件有几十兆,不代表整个读入,不是占用几十兆内存。先写入头部的文字,再循环读一点源文件,写一点源文件。
RandomAccessFile 也可以,只是最初要留出空间,比如一些空格
不大的话可以这样。。。先写一个临时文件,临时文件里写helloworld
然后一行一行把原来文件写到临时文件里。
删除原来的文件
把临时文件拷到原来文件那个地方
删除临时文件
完毕
没有直接的办法。你可以先seek到文件尾,然后获取位置(实际上这一步是获取文件长度)
然后seek到文件头,申请和文件大小相同的内存空间,然后把文件内容全部读出来
然后seek到文件头,写入你要写入的部分
最后把刚刚“全部读出来”的给写回去。
另:如果要用我叙述的方法,以ios::out方式打开会死
p.s. 看你的代码,你是想要把只含有原始像素点颜色数据的文件给搞成bmp文件?w
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)