Reading large file in chunks c#

前端 未结 2 1472
梦毁少年i
梦毁少年i 2020-12-31 12:27

I want to read very large file (4GBish) chunk by chunk.

I am currently trying to use a StreamReader and the Read() read method. The syntax

2条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-31 13:27

    The index is the starting index of buffer not the index of file pointer, usually it would be zero. On each Read call you will read characters equal to the count parameter of Read method. You would not read all the file at once rather read in chunks and use that chunk.

    The index of buffer at which to begin writing, reference.

    char[] c = null;
    while (sr.Peek() >= 0) 
    {
        c = new char[1024];
        sr.Read(c, 0, c.Length);
        //The output will look odd, because 
        //only five characters are read at a time.
        Console.WriteLine(c);
    }
    

    The above example will ready 1024 bytes and will write to console. You can use these bytes, for instance sending these bytes to other application using TCP connection.

    When using the Read method, it is more efficient to use a buffer that is the same size as the internal buffer of the stream, where the internal buffer is set to your desired block size, and to always read less than the block size. If the size of the internal buffer was unspecified when the stream was constructed, its default size is 4 kilobytes (4096 bytes), MSDN.

提交回复
热议问题