none
Büyük txt dosyası okuma RRS feed

  • Soru

  • 25gb lık .txt dosyam var bunu c# ile okuyabilir miyim? Normal sekilde okumaya calısınca su sekilde hata veriyor
    An unhandled exception of type 'System.OutOfMemoryException' occurred in mscorlib.dll

    3 Temmuz 2020 Cuma 18:11

Yanıtlar

  • Merhabalar.

    Cihan Hocam'ın demek istediği, dosyayı tamamen değil satır satır okumak.

    Alttaki kodu dener misiniz? 

    using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))  
    {  
        using (BufferedStream bs = new BufferedStream(fs))  
        {  
            using (StreamReader sr = new StreamReader(bs))  
            {  
                string line;  
                while ((line = sr.ReadLine()) != null)  
                {  
      
                }  
            }  
        }  
    }  


    3 Temmuz 2020 Cuma 19:21

Tüm Yanıtlar

  • Bunun programlama dili alakası yok. Parça parça okuyacaksınız işi biten parçayı bellekten sileceksiniz. Amacınıza ve dosyanın içerğine göre okuma şekliniz değişebilir.

    www.cihanyakar.com


    3 Temmuz 2020 Cuma 18:37
  • Parca parca derken biraz daha acabilir misiniz
    3 Temmuz 2020 Cuma 19:09
  • Merhabalar.

    Cihan Hocam'ın demek istediği, dosyayı tamamen değil satır satır okumak.

    Alttaki kodu dener misiniz? 

    using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))  
    {  
        using (BufferedStream bs = new BufferedStream(fs))  
        {  
            using (StreamReader sr = new StreamReader(bs))  
            {  
                string line;  
                while ((line = sr.ReadLine()) != null)  
                {  
      
                }  
            }  
        }  
    }  


    3 Temmuz 2020 Cuma 19:21
  • Merhabalar.

    Cihan Hocam'ın demek istediği, dosyayı tamamen değil satır satır okumak.

    Alttaki kodu dener misiniz? 

    using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))  
    {  
        using (BufferedStream bs = new BufferedStream(fs))  
        {  
            using (StreamReader sr = new StreamReader(bs))  
            {  
                string line;  
                while ((line = sr.ReadLine()) != null)  
                {  
      
                }  
            }  
        }  
    }  


    Satır satır okuması gerektiğini bilmiyoruz. Amacını bilmediğimiz için yorum yapmak pek doğru olmaz. Dosya tek bir satırdan da oluşuyor olabilir. Veya satırlar bir anlam ifade etmiyor olabilir vs vs.

    www.cihanyakar.com

    3 Temmuz 2020 Cuma 21:18
  • Normal şekilde derken?
    Sonuçta stream ile açacaksınız. 25mb text dosyası, aklı evvel birinin database gibi kullandığı ya da log için kullandığı bişeydir. Bu durumda kendine has bir yapısı kuralı vs vardır. Bu kurala göre istediğiniz kısmı stream kullanarak okumalısınız.

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    4 Temmuz 2020 Cumartesi 04:52
    Moderatör
  • teşekkür ederim satır satır okuyacağım belge 
    4 Temmuz 2020 Cumartesi 15:40