的第一行我有我導入到數據庫中許多大的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是否可以移動到文件的末尾? –