【发布时间】:2013-08-13 10:23:04
【问题描述】:
我正在根据DataTable 中收集的数据动态创建一个文本文件。
我当前的(测试)数据集有 773 行,我想用逗号 (,) 对每一列进行拆分,并将每一行分隔成单独的行。这是我的尝试;
string FileName = "TEST_" + System.DateTime.Now.ToString("ddMMyyhhmm") + ".txt";
StreamWriter sw = File.CreateText(@"PATH...." + FileName);
foreach (DataRow row in Product.Rows)
{
bool firstCol = true;
foreach (DataColumn col in Product.Columns)
{
if (!firstCol) sw.Write(",");
sw.Write(row[col].ToString());
firstCol = false;
}
sw.WriteLine();
}
正如预期的那样,输出是一个文本文件。大部分数据立即出现,但文本文件从未完全显示 773 行。我已经尝试了几次,行数可以从 720 行到 750 行不等,一直到第 773 行的部分完成,但它永远不会完成。
我没有在任何时候干扰或停止该应用程序。
有什么想法吗?
【问题讨论】:
-
您是否尝试将
StreamWriter包装在using块中? - 这会将缓冲区刷新到底层流。 - 或者在你的 foreach 循环之后尝试调用sw.Flush()。 -
@ebb 使用 sw.Flush() 可以解决问题,您能否将其放在答案中并解释原因,我很乐意接受。谢谢。
-
@Clev231 原因,请阅读:stackoverflow.com/questions/2417978/…