C# 覆盖文件流中的字符串

C# 覆盖文件流中的字符串,c#,C#,我的密码是: string sMD5Hash = sb.ToString(); using(Stream stream = new FileStream(sFile, FileMode.OpenOrCreate)) { stream.Seek(5, SeekOrigin.Begin); stream.Write(Encoding.ASCII.GetBytes(sMD5Hash), 0, sMD5Hash.Length); } 我想做的是,找到5,然后开始在那里写我的字符串。不

我的密码是:

string sMD5Hash = sb.ToString();

using(Stream stream = new FileStream(sFile, FileMode.OpenOrCreate))
{
    stream.Seek(5, SeekOrigin.Begin);
    stream.Write(Encoding.ASCII.GetBytes(sMD5Hash), 0, sMD5Hash.Length);
}

我想做的是,找到5,然后开始在那里写我的字符串。不定期写入,因为它将向前推进下一个字节。但是,我想覆盖字节。我该怎么做呢?

制作FileStream
FileMode.open或create
FileAccess.ReadWrite

using (Stream stream = new FileStream(sFile, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
    stream.Seek(5, SeekOrigin.Begin);
    stream.Write(Encoding.ASCII.GetBytes(sMD5Hash), 0, sMD5Hash.Length);
}

我认为这行不通,
Write(字节[]缓冲区,int偏移量,int计数)
是语法,没有第四个参数/overloadNow我得到了以下信息:
附加信息:无法向后搜索以覆盖以前在附加模式下打开的文件中存在的数据。
在搜索部分,当前版本的帖子提供的代码与问题中的代码相同(默认为
FileAccess.ReadWrite
)-请澄清为什么您认为这是不同的。。。你要解决的问题到底是什么(问题中的代码似乎在做问题所要问的事情)。设置绝对位置时使用位置,设置相对位置时使用搜索。流位置=5;'“常规写入”正在覆盖。转移数据(插入一些东西)是相当困难的。代码应该做你想做的。。。你能澄清一下为什么你认为它会“推动下一个字节向前”?哦。。谢谢你,对不起