1

我使用此代码的目标是使用 foreach 循环遍历每个对象并将当前字符串值写入 txt 文件。

我使用“Woof”和“Bull”作为测试。Bull 是我的 AverageValues 类中的字符串变量。

不幸的是,它目前不会将 Bull 的值写入文件,但是,它会创建文件。

我认为这很容易解决,我现在似乎无法找到它。

所有帮助将不胜感激!

    public void doStuff()
    {
        AverageValues AVS = new AverageValues();
        AVS.Bull = "Woof";
        string path = "C:\\users\\kjenks11\\Averages.txt";
        FileStream NewFile = File.Create(path);
        StreamWriter writeIt = new StreamWriter(NewFile);
        List<AverageValues> AV = new List<AverageValues>();
        AV.Add(AVS);

        foreach (var value in AV)
        {
                writeIt.Write(value.Bull);
        } 
        NewFile.Close();
     }
4

3 回答 3

3

在关闭文件本身之前刷新或关闭流:

foreach (var value in AV)
{
     writeIt.WriteLine(value.Bull);
}
writeIt.Flush();
writeIt.Close();

关于样式的注意事项 - 当创建Stream(任何类型的),或者更确切地说,任何实现的对象时,使用语句IDisposable创建它:using

using(var writeIt = new StreamWriter(NewFile))
{
  // use writeIt here - it will dispose properly
}
于 2013-03-21T21:38:46.703 回答
3

您需要刷新才能将数据写入文件。完成后,您还可以考虑向编写器添加 using 语句以释放资源。

public void doStuff()
{
  AverageValues AVS = new AverageValues();
  AVS.Bull = "Woof";
  string path = "C:\\users\\kjenks11\\Averages.txt";
  using (var NewFile = File.Create(path))
  {
    using (var writeIt = new StreamWriter(NewFile))
    {
      List<AverageValues> AV = new List<AverageValues> {AVS};
      foreach (var value in AV)
      {
        writeIt.Write(value.Bull);
      }
    }
  }
}
于 2013-03-21T21:40:02.333 回答
2

如果您using在流周围使用,则无需显式调用刷新和关闭。一旦您离开using块的范围,流将被关闭和处置。收盘价会为你叫同花顺。

  public void doStuff()
    {
        AverageValues AVS = new AverageValues();
        AVS.Bull = "Woof";
        string path = "C:\\users\\kjenks11\\Averages.txt";
        FileStream NewFile = File.Create(path);
        List<AverageValues> AV = new List<AverageValues>();
        AV.Add(AVS);

        using(StreamWriter writeIt = new StreamWriter(NewFile))
        {
           foreach (var value in AV)
           {
                writeIt.Write(value.Bull);
           } 
        }
       NewFile.Close();
    }
于 2013-03-21T21:44:37.837 回答