Чтение двоичного файла в 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(...)?
Конечно, это возможно. См. Это здесь. См. Смещение. Вы можете прочитать из смещения