从特定位置读取C#中的二进制文件

Sku*_*ami 3 c# binary-data

是否可以从特定位置读取大型二进制文件?

我不想从头开始读取文件,因为我可以计算出我需要的流的起始位置和长度.

Pet*_*nov 11

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


小智 5

根据@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);
}
Run Code Online (Sandbox Code Playgroud)