你写将要插入位置后面的文件内容读到缓冲,然后定位文件偏移量插入数据,在将读出来的写入。
因为文件在磁盘上是连续存放的,不可能说直接在中间插入内容而不覆盖原来的,别的语言提供的都是自己按照上述思路写的。或者除非有某些文件系统存放方式不同(但我没见过)。
文件头部插入很麻烦,有三种方法:
将f2.txt读出到内存;将f1.txt运算的结果写到f2.txt的头上,再续写f2.txt的原内容,注意打开f2.txt要用"rw"属性;
新键个f3.txt;将f1.txt运算的结果写入后,再读f2.txt写入,关闭f3.txt后将f2.txt删除,改f3.txt文件名为f2.txt。一般是这么做的。
最后一种避免改名,先打开f2.txt读,建立f3.txt,将f2.txt原样写入,然后f2.txt就可以从头覆盖写入f1.txt的处理结果,再读取f3.txt内容续写;最后删除f3.txt。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)