C#FileStream从头部写入文件不覆盖以前内容
时间: 2024-09-18 22:05:55 浏览: 83
C#实现word文件下载的代码
在C#中,`FileStream`是一个用于读取和写入二进制数据到文件的流处理类。如果你想要从文件头开始写入新的内容而不覆盖原有的内容,你需要确保文件已经被正确关闭,并且在写入之前将其位置设置回文件的起始位置。
下面是一个简单的示例,演示如何做到这一点:
```csharp
using (FileStream fileStream = new FileStream("example.txt", FileMode.Open, FileAccess.Write, FileShare.Read))
{
// 将文件位置设回开始
fileStream.Seek(0, SeekOrigin.Begin);
byte[] dataToWrite = { /* 新的数据 */ };
using (MemoryStream memoryStream = new MemoryStream(dataToWrite))
{
fileStream.Write(memoryStream.ToArray(), 0, dataToWrite.Length);
}
}
```
在这个例子中,`FileMode.Open`表示文件存在则打开,`FileAccess.Write`允许我们写入,而`FileShare.Read`允许其他进程同时读取文件。通过`Seek(0, SeekOrigin.Begin)`将流的位置设回到文件的起始位置,然后你可以使用`Write`方法从内存流`memoryStream`中写入新的数据。
阅读全文