C、C++操作大文件时(256M)指定位置写入而不覆盖后面数据
怎么才能实现实现:文件256M如果方法能够操作的文件越大越好,速度越快越好指定位置追加(不覆盖后面内容)指定位置是程序设置的(可以设置)指定位置开始的某一段数据删除。...
怎么才能实现
实现:文件256M 如果方法能够操作的文件越大越好,速度越快越好
指定位置追加(不覆盖后面内容)指定位置是程序设置的(可以设置)
指定位置开始的某一段数据删除。 展开
实现:文件256M 如果方法能够操作的文件越大越好,速度越快越好
指定位置追加(不覆盖后面内容)指定位置是程序设置的(可以设置)
指定位置开始的某一段数据删除。 展开
2个回答
展开全部
创建一个文件,然后写入无效数据0,比如文件10M。
然后随意seek 也就是移动当前写入指针,范围0-10M的范围,如果移动到结尾了就不能继续往后了
如果是在结尾,则是追加文件内容
如果是在中间,则写入10B的数据,就覆盖10B的数据。
后面的数据是不会自动搬家的。
如果这个问题好解决,windows操作系统就不需要用久了就需要清理磁盘碎片了
windows操作系统的文件内容是分块存放的,实际存储有时候文件是不连续的,通过一些索引序号的措施让你能够连续读取数据。
如果你想要中间插入数据,想想链表的思路吧。
然后随意seek 也就是移动当前写入指针,范围0-10M的范围,如果移动到结尾了就不能继续往后了
如果是在结尾,则是追加文件内容
如果是在中间,则写入10B的数据,就覆盖10B的数据。
后面的数据是不会自动搬家的。
如果这个问题好解决,windows操作系统就不需要用久了就需要清理磁盘碎片了
windows操作系统的文件内容是分块存放的,实际存储有时候文件是不连续的,通过一些索引序号的措施让你能够连续读取数据。
如果你想要中间插入数据,想想链表的思路吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询