我試圖使用下面的代碼拆分約32GB的文件,但我得到了memory exception
。如何使用C#拆分大文本文件(32 GB)
請推薦我使用C#
拆分文件。
string[] splitFile = File.ReadAllLines(@"E:\\JKS\\ImportGenius\\0.txt");
int cycle = 1;
int splitSize = Convert.ToInt32(txtNoOfLines.Text);
var chunk = splitFile.Take(splitSize);
var rem = splitFile.Skip(splitSize);
while (chunk.Take(1).Count() > 0)
{
string filename = "file" + cycle.ToString() + ".txt";
using (StreamWriter sw = new StreamWriter(filename))
{
foreach (string line in chunk)
{
sw.WriteLine(line);
}
}
chunk = rem.Take(splitSize);
rem = rem.Skip(splitSize);
cycle++;
}
這很容易修復。只要購買超過32GB的內存,您就可以讀取內存中的整個文件。 – Stilgar 2012-07-26 12:02:59
我想你需要一個StreamReader – V4Vendetta 2012-07-26 12:03:48
你只需將整個32GB文本文件一次讀入內存,這是完全不道德的。 – 2012-07-26 12:03:55