数GBのサイズのタブ区切りのテキストファイルがあります。ここでのタスクは、各列にヘッダーテキストを追加することです。今のところ、StreamReaderを使用して行ごとに読み取り、各列にヘッダーを追加しています。今のところかなり時間がかかります。それを速くする方法はありますか?ファイルを列単位で処理する方法があるかどうかを考えていました。1つの方法は、データベーステーブルにファイルをインポートし、ヘッダーを追加した後にデータをbcpアウトすることです。おそらくPowerShellをC#コードでawk / sedと呼ぶことによる、他のより良い方法はありますか?
コードは次のとおりです。
StreamReader sr = new StreamReader(@FilePath, System.Text.Encoding.Default);
string mainLine = sr.ReadLine();
string[] fileHeaders = mainLine.Split(new string[] { "\t" }, StringSplitOptions.None);
string newLine = "";
System.IO.StreamWriter outFileSw = new System.IO.StreamWriter(@outFile);
while (!sr.EndOfStream)
{
mainLine = sr.ReadLine();
string[] originalLine = mainLine.Split(new string[] { "\t" }, StringSplitOptions.None);
newLine = "";
for (int i = 0; i < fileHeaders.Length; i++)
{
if(fileHeaders[i].Trim() != "")
newLine = newLine + fileHeaders[i].Trim() + "=" + originalLine[i].Trim() + "&";
}
outFileSw.WriteLine(newLine.Remove(newLine.Length - 1));
}