【发布时间】:2013-04-17 23:32:02
【问题描述】:
我必须将数千个动态生成的行写入文本文件。 我有两个选择,哪个消耗资源少,速度快?
A.使用 StringBuilder 和 File.WriteAllText
StringBuilder sb = new StringBuilder();
foreach(Data dataItem in Datas)
{
sb.AppendLine(
String.Format(
"{0}, {1}-{2}",
dataItem.Property1,
dataItem.Property2,
dataItem.Property3));
}
File.WriteAllText("C:\\example.txt", sb.ToString(), new UTF8Encoding(false));
B.使用 File.AppendText
using(StreamWriter sw = File.AppendText("C:\\example.txt"))
{
foreach (Data dataItem in Datas)
{
sw.WriteLine(
String.Format(
"{0}, {1}-{2}",
dataItem.Property1,
dataItem.Property2,
dataItem.Property3));
}
}
【问题讨论】:
-
我需要尽快完成这个操作,因为涉及到网络和数据库写入。而且我有一些相关的瓶颈,所以我问这个问题是因为我需要,而不是因为我不知道你链接的文章。
-
我不确定速度是否应该是您主要关心的问题。内存使用显然是推动您做出决定的因素。如果数据总是很小,那么您可以运行一些测试来确定哪个更快。
标签: c# performance streamwriter .net