gpt4 book ai didi

c# - 在 C# 程序中用字符串替换流

转载 作者:行者123 更新时间:2023-11-30 19:33:42 24 4
gpt4 key购买 nike

目前,我有一个读取文件并使用 XMLTextWriter 将 XML 文件写入磁盘的程序。不久之后,我读取了文件并对其进行了解析。

我正在尝试将这两个程序放在一起。我想摆脱写入文件的步骤。 XMLTextWriter 在构造时需要文件路径或 Stream。有没有一种方法可以创建一个 Stream 来创建一个带有输出的字符串,而不是将其写入文件?

谢谢

最佳答案

最简单的方法是使用MemoryStream:

// To give code something to read
Stream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(text));
CallRealCode(memoryStream);


// To give code something to write:
Stream memoryStream = new MemoryStream();
CallRealCode(memoryStream);
string text = Encoding.UTF8.GetString(memoryStream.ToArray());

(当然要调整到适当的编码。)

或者,如果您可以为代码提供 TextWriter 而不是 Stream,则可以使用 StringWriter。需要注意的一点是,默认情况下,StringWriter 会宣传自己要使用 UTF-16。您可以使用子类覆盖此行为,如下所示:

public sealed class Utf8StringWriter : StringWriter
{
public override Encoding Encoding { get { return Encoding.UTF8; } }
}

(显然你也可以用更灵活的方式做到这一点......)

关于c# - 在 C# 程序中用字符串替换流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3187591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com