Используйте FileStream
и BinaryReader
. Примерно так:
var int16List = List<Int16>();
using (var stream = new FileStream(filename, FileMode.Open))
using (var reader = new BinaryReader(stream))
{
try
{
while (true)
int16List.Add(reader.ReadInt16());
}
catch (EndOfStreamException ex)
{
// We've read the whole file
}
}
return int16List.ToArray();
Вы также можете прочитать весь файл в byte[]
, а затем использовать MemoryStream
вместо FileStream
, если хотите.
Если вы сделаете это, вы также сможете заранее определить размер List
и сделать его немного более эффективным.