有效地连接多个CSV文件,保留C#中第一个文件的标题

时间:2016-09-01 20:55:04

标签: c# performance csv io

给定多个CSV文件,每个文件可以有数百兆字节或更多。它们都有相同的标题行启动文件,并在每行的末尾有CRLF。每个文件在文件末尾可能有也可能没有CRLF。目标是:

  1. 加入文件列表。
  2. 保留第一个文件的标题。
  3. 将它们输出到新文件。
  4. 这些文件可能包含数千列和数百万行。
  5. 必须按给定的顺序处理文件,并且行的顺序很重要。
  6. 考虑到文件的大小,这需要尽可能快和内存效率。

1 个答案:

答案 0 :(得分:3)

如果标题相同,那么您只需打开写入流,然后浏览所有输入文件,为它们打开读取流并复制数据。第一个文件是完整复制的。后续文件跳过了第一行。

这种方法是最快的,只要您100%确定列对齐并且它只是需要跳过的第一行。

这种事情在Unix风格的命令行上非常简单,顺便说一下。