我正在用C#创建一个方法,用于生成Google产品数据源的文本文件。该数据源将包含超过30,000条记录,而文本文件目前的大小约为7Mb。
以下是我目前正在使用的代码(为了简洁起见,已删除某些行)。
public static void GenerateTextFile(string filePath) {
var sb = new StringBuilder(1000);
sb.Append("availability").Append("\t");
sb.Append("condition").Append("\t");
sb.Append("description").Append("\t");
// repetitive code hidden for brevity ...
sb.Append(Environment.NewLine);
var items = inventoryRepo.GetItemsForSale();
foreach (var p in items) {
sb.Append("in stock").Append("\t");
sb.Append("used").Append("\t");
sb.Append(p.Description).Append("\t");
// repetitive code hidden for brevity ...
sb.AppendLine();
}
using (StreamWriter outfile = new StreamWriter(filePath)) {
result.Append("Writing text file to disk.").AppendLine();
outfile.Write(sb.ToString());
}
}
我想知道StringBuilder是否是适合这项工作的正确工具。如果使用TextWriter,是否会有性能提升?
我对IO性能不是很了解,所以任何帮助或改进意见都将不胜感激。谢谢。