2

我需要从二进制文件中读取一定数量的短(int16)数据点,从特定位置开始。谢谢!

4

2 回答 2

4

这样的事情应该为你做:

private IEnumerable<Int16> getShorts(string fileName, int start, int count)
using(var stream = File.OpenRead(fileName))
{
   stream.Seek(start);
   var reader = new BinaryReader(stream);
   var list = new List<int16>(count);
   for(var i = 0;i<count;i++)
   {
      list.Add(reader.ReadInt16());
   }
}

这基本上是 CAsper 用代码写的

于 2010-06-28T17:44:37.617 回答
3

您可以简单地在传递给 BinaryReader 的 Stream 上调用 Seek 方法到要开始读取的文件中的位置。

然后,一旦将流传递给 BinaryReader,就可以根据需要多次调用 ReadInt16 方法。

于 2010-06-28T17:37:40.613 回答