Чтение двоичного файла в C# из определенной позиции

Можно ли прочитать большой двоичный файл с определенной позиции?

Я не хочу читать файл с самого начала, потому что я могу рассчитать начальную позицию и длину нужного мне потока.

5 ответов

Решение

Да, вы можете использовать поиск, как указано выше. образец для вас → Примеры поиска файлов C#

        using (FileStream sr = File.OpenRead("someFile.dat"))
        {
            sr.Seek(100, SeekOrigin.Begin);
            int read = sr.ReadByte();
            //...
        }

По словам @shenhengbin answord.

использование BinaryReader.BaseStream.Seek,

using (BinaryReader b = new BinaryReader(File.Open("perls.bin", FileMode.Open)))                                                     
{
    int pos = 50000;
    int required = 2000;

    // Seek to our required position.
    b.BaseStream.Seek(pos, SeekOrigin.Begin);

    // Read the next 2000 bytes.
    byte[] by = b.ReadBytes(required);
}

Хорошо, если вы знаете потоки, почему бы не использовать (File)Stream.Seek(...)?

Конечно, это возможно. См. Это здесь. См. Смещение. Вы можете прочитать из смещения

Другие вопросы по тегам