خواندن فایل های بزرگ در سی شارپ

mohsen11 ماه قبل
ارسال شده در
mohsen

در دات نت حداکثر اندازه رشته حداکثر 2 گیگابایت است. حالا فرض کنین که می خواهیم یک فایل با حجم بالا را در دات نت بخوانیم. اگر تعداد خط های داخل فایل زیاد باشد می تونیم با دستور File.ReadAllLines(filePath) محتوای فایل را به صورت آرایه رشته ای بخوانیم. اما اگر فایل ما کلن از یک خط تشکیل شده باشد، مثلن یک شی جی سان، برای این کار می توانیم از روش زیر استفاده کنیم:

      using var fileStream = File.OpenRead("path_to_file.json");
var readBytes = new List<byte>();
var count = 1024;
while (true)
{
        var bytes = new byte[count];
        var b = fileStream.Read(bytes, 0, bytes.Length);
        if (b == 0)
        {
            break;
        }
        readBytes.AddRange(bytes);
}

var jsonReader = new Utf8JsonReader(readBytes.ToArray());
while (jsonReader.Read())
{
  // read json
}
    
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!