我需要从二进制文件中读取一定数量的短(int16)数据点,从特定位置开始。谢谢!
答案 0 :(得分:3)
您可以简单地将传递给BinaryReader的Stream上的Seek方法调用到您想要开始读取的文件中的位置。
然后,一旦将流传递给BinaryReader,就可以根据需要多次调用ReadInt16方法。
答案 1 :(得分:3)
这样的事情应该为你做到:
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在代码中编写的内容