我正在使用C#创建一个方法,为Google Product Feed生成一个文本文件.Feed将包含超过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());
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道StringBuilder是否适合这项工作.如果我使用TextWriter,会有性能提升吗?
我不太了解IO性能,所以任何帮助或一般改进都将不胜感激.谢谢.