的第一行我有我导入到数据库中许多大的CSV文件(每个1-10 GB)。对于每个文件,我需要替换第一行,以便可以将标题格式化为列名称。我目前的解决方案是:快速更换大文件
using (var reader = new StreamReader(file))
{
using (var writer = new StreamWriter(fixed))
{
var line = reader.ReadLine();
var fixedLine = parseHeaders(line);
writer.WriteLine(fixedLine);
while ((line = reader.ReadLine()) != null)
writer.WriteLine(line);
}
}
什么是更快的方式来只替换第1行而无需遍历这些巨大的文件的每一行?
我可能只是从命令行执行此操作。 'copy headerfile + csvfile newfile'你可以创建一个包含所有需要修改的文件的批处理文件。 (哦,除了看起来你不知道标题是什么,否则这不会起作用) –
如果你正在使用的工具恰好通过'stdin'输入输入:而不是文件,您可以创建一个由标题和正文组成的流,并在需要时将其提供到导入工具中。例如'cat headerfile bigfile | import_tool' –
这对fixedLine的长度和第一行非常敏感。 fixedLine可以更大吗? line2是否可以移动到文件的末尾? –