StreamWriter未写入文件

时间:2017-10-03 12:20:07

标签: c# text

下面是我的代码的一部分,无法弄清楚为什么文本流没有写入目标文件。

...
StringBuilder Religion = new StringBuilder();
...         
    if (Religion.Length != 0)
    {

        sw = new System.IO.StreamWriter(Dts.Variables["User::RawData"].Value.ToString() + "Religion.csv");
        sw.WriteLine(Religion);
        MessageBox.Show(Religion.ToString());
    }

我添加了MessageBox.Show来帮助我检查StringBuilder Religion是否为空,但它确实包含了所有行,并且我的每个数据文件都有这样的多个代码块,不知道为什么只有这个,结果文件是 EMPTY ...

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用:

...
StringBuilder Religion = new StringBuilder();
...         
if (Religion.Length != 0)
{

    using (sw = new System.IO.StreamWriter(Dts.Variables["User::RawData"].Value.ToString() + "Religion.csv"))
    {
        sw.WriteLine(Religion);
    }
    MessageBox.Show(Religion.ToString());
}

可替换地:

...
StringBuilder Religion = new StringBuilder();
...         
if (Religion.Length != 0)
{

    sw = new System.IO.StreamWriter(Dts.Variables["User::RawData"].Value.ToString() + "Religion.csv"))
    try
    {
        sw.WriteLine(Religion);
    }
    finally
    {
        sw.Close();
    }
    MessageBox.Show(Religion.ToString());
}