【发布时间】:2017-08-02 16:49:48
【问题描述】:
我需要读取文件的内容并在文件被锁定时覆盖它。我不希望文件在读写操作之间被解锁。
using (var file = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None))
{
using (var reader = new StreamReader(file, Encoding.Unicode))
using (var writer = new StreamWriter(file, Encoding.Unicode))
{
// read
// calculate new content
// overwrite - how do I do this???
}
}
如果我使用两个FileStreams,则在实例化写入器时会清除文件,但会在读取器和写入器实例化之间短暂解锁文件。
using (var reader = new StreamReader(new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read, FileShare.None)))
{
// read
// calculate new content
}
using (var writer = new StreamWriter(new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)))
{
// write
}
【问题讨论】:
标签: c# filestream streamreader streamwriter