题主打算在不改变原有文件的情况下,将相对于文件开头offset偏移量后的内容替换为buffer缓冲区的内容,代码如下:
StreamWriter writer = new StreamWriter("file", true); //设置指针位置 writer.BaseStream.Seek(offset, SeekOrigin.Begin); //将buffer内的数据写进文件 writer.Write(buffer); //关闭流 writer.Close();
当执行到第二句将指针指向要修改的位置时,引发了IOException
异常,异常信息为无法通过向后搜索来覆盖以追加模式打开的文件中的原有数据
,但如果以“覆盖”的方式打开下,文件原有内容会在StreamWriter
对象被创建后抹去。请问在不使用把整个文件读取进缓冲区并在缓冲区修改数据后将整个缓冲区覆盖进文件的方法的情况下,如何对文件的某一部分进行直接的修改呢?
付费偷看金额在0.1-10元之间
一周热门 更多>