创建或打开文件,然后将数据附加到其中

R. *_*eev 3 .net c# streamwriter

我们可以使用这样的代码打开或创建文件,然后向其中写入一些数据(所有内容将被替换)。

using (var file = File.Open(path, FileMode.OpenOrCreate))
    using (var stream = new StreamWriter(file))
        stream.WriteLine(_message);
Run Code Online (Sandbox Code Playgroud)

或者我们可以使用以下代码在文件末尾添加数据,假设该文件存在。

using (var file = File.Open(path, FileMode.Append))
    using (var stream = new StreamWriter(file))
        stream.WriteLine(_message);
Run Code Online (Sandbox Code Playgroud)

有什么方法可以将这三件事结合起来:((创建||打开)和附加)到文件中吗?

Mor*_*app 10

如果您想将数据追加到文件中,只需调用File.Seek(0, SeekOrigin.End). 这会将文件指针设置为文件末尾,即使用 . 打开文件后它所在的位置FileMode.Append

例如:

using (var file = File.Open(path, FileMode.OpenOrCreate))
{
    file.Seek(0, SeekOrigin.End);
    using (var stream = new StreamWriter(file))
        stream.WriteLine(_message);
}
Run Code Online (Sandbox Code Playgroud)


Igo*_*gor 5

您可以创建自己的FileStream工厂,也可以像这样在一条线上完成。

using (var file = File.Exists(path) ? File.Open(path, FileMode.Append) : File.Open(path, FileMode.CreateNew))
using (var stream = new StreamWriter(file))
    stream.WriteLine(_message);
Run Code Online (Sandbox Code Playgroud)