使用 FileHelperAsyncEngine 读取、修改和写入

Read, modify and write using FileHelperAsyncEngine

我是 FileHelper 的新手,请多多包涵。 我想读取一个现有的 .csv 文件,其中一列没有数据。 接下来我想从数据库填充该列(附加的代码现在只是放入一个字符串,稍后我将处理数据库调用) 然后,我想输出包含更新的列信息的文件。

    static void Main(string[] args)
    {
        var engine = new FileHelperAsyncEngine<Agents>();
        using (engine.BeginReadFile(@"C:\Users\me\Documents\Agents.csv"))
        {
            int pId = 100;

            // The engine is IEnumerable
            foreach (Agents agent in engine)
            {
                agent.PersonID = pId.ToString();
                pId++;
            }
                      engine.BeginWriteFile(@"C:\Users\me\Documents\Output.csv");
        }
    }

这会读取文件,但只输出第一行(在本例中为 header 行) 我希望获得整个更新文件

那是因为您正在使用相同的 FileHelperAsyncEngine 来写入输出。您需要打开另一个 FileHelperAsyncEngine.

您在 engine.BeginWriteFile 所做的只是关闭读取流并打开写入流。

你的意思可能更像这样:

static void Main(string[] args)
{
  var engine = new FileHelperAsyncEngine<Agents>();
  var outEngine = new FileHelperAsyncEngine<Agents>();

  using (engine.BeginReadFile(@"C:\Users\me\Documents\Agents.csv"))
  using (outEngine.BeginWriteFile(@"C:\Users\me\Documents\Output.csv"))
  {
    int pId = 100;

    // The engine is IEnumerable
    foreach (var record in engine)
    {
      record.PersonID = pId.ToString();
      pId++;

      outEngine.WriteNext(record);
    }
  }
}