Próbuję odczytać w pliku tekstowym 150 MB w polu tekstu sformatowanego.C# - Odczyt w dużym pliku tekstowym (150 MB) w polu tekstu sformatowanego
Obecnie używam StreamReader do iteracji przez każdą linię w pliku, dołączając każdy wiersz do instancji StringBuilder.
Działa to dla mniejszych plików, ale podczas próby odczytu dużych plików pojawia się wyjątek System.OutOfMemory.
Nie widzę żadnych problemów z odczytaniem pliku 150 MB - jest dużo pamięci fizycznej i jest to dobrze w 32-bitowej przestrzeni adresowej aplikacji Windows.
Jeśli ktoś ma pomysł, jak to zrobić, byłoby to bardzo cenne.
Założę mój kod na końcu.
Dzięki.
StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader(fileLocation))
{
string line;
while ((line = sr.ReadLine()) != null)
{
sb.AppendLine(line);
}
}
return sb;
+1, dobre pytanie. –
Czy możesz wysłać ślad stosu? Dzięki temu możemy dokładnie zobaczyć, gdzie występuje wyjątek. Może to być również powiązane: http://stackoverflow.com/questions/363680/stringbuilder-for-concementation-throws-outofmemoryexception (dotyczące konstruktorów stringów) – Christoffer
Proszę wyjaśnić, czy ten kod (część do czytania) rzuca wyjątek czy to się dzieje, gdy ładujesz RTB? –