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

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

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

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


编辑 举报 2023-05-28 14:33

0个评论

暂无评论...
验证码 换一张
相关内容