gpt4 book ai didi

c# - 将 StringBuilder 流式传输到文件

转载 作者:可可西里 更新时间:2023-11-01 03:07:07 24 4
gpt4 key购买 nike

我需要创建一个大型文本文档。我目前使用 StringBuilder 制作文档,然后调用 File.WriteallText(filename,sb.ToString)。不幸的是,这现在开始抛出内存异常。

是否有更好的方法将 StringBuilder 流式传输到文件,或者是否有其他我应该使用的技术?

最佳答案

不要使用 StringBuilder,请尝试使用 TextWriter(它具有大致相似的 API,但可以写入许多底层目标,包括文件)- 即

using(TextWriter writer = File.CreateText(path))
{
// loop etc
writer.Write(...);
}

更一般地说,将了解文件的代码与了解如何写入数据的代码分开是值得的,即

using(var writer = File.CreateText(path))
{
Serialize(writer);
}
...
void Serialize(TextWriter writer)
{
...
}

这使得写入不同的目标变得更加容易。例如,您现在也可以在内存中执行操作:

var sw = new StringWriter();
Serialize(sw);
string text = sw.ToString();

重点是:您的Serialize 代码不需要更改以适应不同的目标。这也可以是直接写入网络,或通过压缩/加密流写入。用途广泛。

关于c# - 将 StringBuilder 流式传输到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8008092/

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