数か月にわたって収集した財務データを消去するプログラムを作成しました。合計で約 100 GB で、毎日増加しています。各ファイルはそれぞれ約 1 ~ 2 GB です。現在、テキスト ファイル形式で保存されています。
以下のコードは、データを消去するために使用されます。
static void Main()
{
string inputString;
string outputString;
// others variable omitted
string[] lineSplit;
foreach (string fullPath in Directory.GetFiles(inputDirectory))
{
using (StreamReader reader = new StreamReader(fullPath)) //read from input file
{
while ((line = reader.ReadLine()) != null)
{
//logic to clean data
...
///////////////////////////////////////////////////////////
using (StreamWriter writer = File.AppendText(outputFile))
{
writer.WriteLine(outputString);
}
}
}
}
}
非常に遅いです。100 GB のデータの場合、完了するまでに約 3 ~ 4 日かかると見積もっています。私はそれを行うためのバッファなどがないので、それが私のIO操作に関するものであることを知っています。私はまだC#に比較的慣れていないため、IO用の適切なバッファを構築するための関連する例を見つけることができませんでした. 私が見つけたほとんどの例はダウンロード用であり、テキストファイルの読み取りには適用できません。ファイルが大きすぎるため、ファイル全体をメモリにロードして処理することはできません。どうすればできますか?誰かが私が使用できるコードのスニペットを教えてもらえますか? ありがとう