How to read a file starting at a specific cursor point in C#?

c#, file, file-io

Solution

If you want to read the file as text, skipping characters (not bytes):

using (var textReader = System.IO.File.OpenText(path))
{
    // read and disregard the first 977 chars
    var buffer = new char[977];
    textReader.Read(buffer, 0, buffer.Length);

    // read 200 chars
    buffer = new char[200];
    textReader.Read(buffer, 0, buffer.Length);
}

If you merely want to skip a certain number of bytes (not characters):

using (var fileStream = System.IO.File.OpenRead(path))
{
    // seek to starting point
    fileStream.Seek(977, SeekOrigin.Begin);

    // read 200 bytes
    var buffer = new byte[200];
    fileStream.Read(buffer, 0, buffer.Length);
}

Problem

I want to read a file but not from the beginning of the file but at a specific point of a file. For example I want to read a file after 977 characters after the beginning of the file, and then read the next 200 characters at once. Thanks.

Original source