0

我正在尝试List<string>使用该类将 a 写入文件StreamWriter。当我将参数(在调试模式下)传递给write_lines()函数时,程序会停止而没有任何错误。也许有人知道我做错了什么

    public class Writer
{
    private StreamWriter the_writer;
    private string PS_filepath;

    public Writer()
    {

    }

    public void write_lines(List<string> thelines, string path)
    {
        this.PS_filepath = path;
        this.the_writer = new StreamWriter(PS_filepath, true);

        foreach(string line in thelines)
        {
            the_writer.WriteLine(line);
        }
    }
}

Path var is C:\path\text.xyz

4

1 回答 1

3

您的作家是在本地创建的,但从未正确关闭。

没有理由将变量存储在实例中,因此整个方法可以简单地设为静态:

public static void write_lines(List<string> thelines, string path)
{
    //this.PS_filepath = path;
    using (StreamWriter writer = new StreamWriter(path, true))
    {
      foreach(string line in thelines)
      {
          writer.WriteLine(line);
      }
    }
}

using将确保您的文件已关闭(因此完全写入)。其他变化只是小的改进。

于 2012-07-28T18:45:51.503 回答