大きなファイルの最初の行を置き換えます。各ファイルについて、最初の行を置換する必要がありますので、ヘッダーを列名にフォーマットできます。私の現在のソリューションは、次のとおりです。はすぐに私は、データベースにインポートしています多くの大規模なCSVファイル(1〜10ギガバイトごとに)持っている
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はファイルの最後に移動できますか? –