在提供流和编码时附加文本,而不是路径

Appending text while providing a stream and encoding, not a path

所以我使用的是一个 streamwriter,我提供一个流,而不是一个路径。我无法直接使用路径,因为它必须考虑模拟文件系统。

这个问题是,如果您提供路径而不是流,附加布尔只是一个选项。

如果我这样做:

using (var writer = new StreamWriter(stream, encoding))

然后我不能将它设置为追加而不是覆盖。

我也尝试过将其设置为文件的 .AppendText() 流,如下所示:

using (var writer = FileInfo.FromFileName(path).AppendText())

这行得通,但这里的问题是我无法设置编码,而我需要这样做。我还没有找到在构建后设置编码的方法。

因此,从本质上讲,我需要一种能够使用流编写器附加文本的方法,同时还要考虑到我必须为其提供流和编码。有人知道我能做什么吗?

在创建 StreamWriter 之前,只需将流的位置设置为末尾即可。

stream.Position = stream.Length;