C#Streamwriter close()不关闭流

时间:2018-10-16 13:41:39

标签: c#

void Spausdinimas(AutomobiliuKonteineris miestai, 
                  string tekstas, 
                  bool stop, 
                  string failas)
{
    using (StreamWriter writetext = new StreamWriter(failas, stop))
    {
        writetext.WriteLine(tekstas);
        writetext.WriteLine();

        for (int i = 0; i < miestai.Count; i++)
        {
            writetext.WriteLine(miestai.GetCar(i));
        }

        writetext.WriteLine();
        writetext.Close();
    }
}

我不知道为什么,但是它是不关闭文件,并且在重新调试文件后没有覆盖

1 个答案:

答案 0 :(得分:2)

由于在using语句中包含StreamWriter,因此它将被间接处置。这是here的MS文档。

就不覆盖文件而言,您正在使用两个参数的构造函数。如果您查看documentation,则第二个参数是“ Append”的布尔值,我不知道您是将其设置为true还是false,但这就是为什么它不将其替换为较新文件的原因

这是我建议的更改,因为我不知道您到底想做什么:

void Spausdinimas(AutomobiliuKonteineris miestai, 
              string tekstas, 
              bool stop, 
              string failas)
{
  using (StreamWriter writetext = new StreamWriter(failas))
  {
    writetext.WriteLine(tekstas);
    writetext.WriteLine();

    for (int i = 0; i < miestai.Count; i++)
    {
        writetext.WriteLine(miestai.GetCar(i));
    }

    writetext.WriteLine();
  }
}