C#如何在不改變原有文件內容下直接修改文件某一部分的內容??
題主打算在不改變原有文件的情況下,將相對于文件開頭offset偏移量后的內容替換為buffer緩沖區的內容,代碼如下:
StreamWriter writer = new StreamWriter("file", true); //設置指針位置 writer.BaseStream.Seek(offset, SeekOrigin.Begin); //將buffer內的數據寫進文件 writer.Write(buffer); //關閉流 writer.Close();
當執行到第二句將指針指向要修改的位置時,引發了IOException
異常,異常信息為無法通過向后搜索來覆蓋以追加模式打開的文件中的原有數據
,但如果以“覆蓋”的方式打開下,文件原有內容會在StreamWriter
對象被創建后抹去。請問在不使用把整個文件讀取進緩沖區并在緩沖區修改數據后將整個緩沖區覆蓋進文件的方法的情況下,如何對文件的某一部分進行直接<愛尬聊_讓生活聊出新高度>的修改呢?