从特定位置读取c#二进制文件

本文关键字:二进制文件 读取 位置 定位 | 更新日期: 2023-09-27 18:02:08

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

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

从特定位置读取c#二进制文件

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

根据@ shenengbin 答案

使用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(…)呢?

这当然是可能的。看这里。看看偏移量。你可以从