Próbowałem podzielić plik na około 32 GB przy użyciu poniższego kodu, ale mam memory exception
.Jak podzielić duży plik tekstowy (32 GB) przy użyciu C#
Proszę zasugerować, aby podzielić plik przy użyciu 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++;
}
Łatwo to naprawić. Po prostu kup więcej niż 32 GB RAM i będziesz mógł odczytać cały plik w pamięci. – Stilgar
Zgaduję, że potrzebujesz StreamReadera – V4Vendetta
Właśnie przeczytałeś cały plik tekstowy 32GB do pamięci, co jest całkowicie nieetyczne. –