繁体   English   中英

读取和写入同一个 csv 文件

[英]Read and write to the same csv file

我有一个包含大量目录的 CSV 文件(例如 Directories.csv)。 我正在使用流阅读器从 CSV 中遍历目录并执行一些任务。 我正在将完成的目录列表更新为字典并现在停留在这一步。

问:我想通过在同一 CSV中完成目录的循环捕获数据,以防应用程序崩溃或服务器重新启动,这样我就不必再次遍历已完成的循环。 (或)从 CSV 中删除已完成的目录行

我试图在线检查建议并要求创建临时文件并移动它的副本。 如果服务器重新启动或应用程序崩溃,这可能吗? 请建议我如何向前推进。

我的代码:

  Dictionary<string, string> directoryDictionary = new Dictionary<string, string>();
  using (FileStream fileStreamDirectory = File.Open(outputdir + "\\Directories.csv", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
  using (BufferedStream bufferStreamDirectory = new BufferedStream(fileStreamDirectory))
  using (StreamReader streamReaderDirectory = new StreamReader(bufferStreamDirectory))
  {
      while ((Directoryline = streamReaderDirectory.ReadLine()) != null)
      {
        #Doing the task here
        directoryDictionary.Add(Directoryline, "Completed");
      }
  }

您不能真正将数据插入文本文件的中间(除非它是固定宽度格式,而 CSV 则不是)。

两种选择:

  • 读取到内存,更新内存数据,将整个表重写回文件(可能需要保留以前的版本以防写入失败)
  • 使用满足您标准的数据库并在那里导入 CSV 以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM