windows - C # - Læs i en stor (150 MB) tekstfil i en Rich Text Box

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at læse i en 150mb tekstfil i en Rich Text-boks.


I øjeblikket bruger jeg en StreamReader til at gentage gennem hver linje i filen, tilføjer hver linje til et StringBuilder-eksempel.


Dette fungerer for mindre filer, men jeg får en System.OutOfMemory undtagelse, når jeg prøver at læse store filer.


Jeg kan ikke se nogen problemer med at læse en 150mb fil - der er masser af fysisk hukommelse, og det er godt inden for Windows 32-biters applikationsadresse.


Hvis nogen her har nogen ide om hvordan man gør dette, ville det være meget værdsat.


Jeg vil vedhæfte min kode i slutningen.


Tak.


StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader(fileLocation))
{
   string line;
   while ((line = sr.ReadLine()) != null)
   {
      sb.AppendLine(line);
   }
    }

return sb;

Bedste reference


Brug RichTextBox.LoadFile


http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.loadfile.aspx[6]


Jeg er ikke sikker på, hvorfor du vil læse hele teksten til en StringBuilder. Alternativt kan du sende en FileStream til LoadFile, som ville gøre den store fil til dig.

Andre referencer 1


Jeg antager, at du skal styre en eller anden måde indgangsfilen - lad sig sige opdele den i flere færre filer og navigere mellem delene programmatisk eller så ..


150 MB fil lyder som en unormal ting. Måske skal du se på streamen slags databehandling snarere end fil en.