C#如何在不改变原有文件内容下直接修改文件某一部分的内容? 财富值88

2016-10-17 17:43发布

题主打算在不改变原有文件的情况下,将相对于文件开头offset偏移量后的内容替换为buffer缓冲区的内容,代码如下:

StreamWriter writer = new StreamWriter("file", true); //设置指针位置 writer.BaseStream.Seek(offset, SeekOrigin.Begin); //将buffer内的数据写进文件 writer.Write(buffer); //关闭流 writer.Close();

当执行到第二句将指针指向要修改的位置时,引发了IOException异常,异常信息为无法通过向后搜索来覆盖以追加模式打开的文件中的原有数据,但如果以“覆盖”的方式打开下,文件原有内容会在StreamWriter对象被创建后抹去。请问在不使用把整个文件读取进缓冲区并在缓冲区修改数据后将整个缓冲区覆盖进文件的方法的情况下,如何对文件的某一部分进行直接的修改呢?

友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
0条回答

一周热门 更多>