二进制返回List <int16> </int16>

时间:2011-03-01 10:53:35

标签: c# winforms

我使用二进制文件编写了一个二进制文件的值列表。

我想知道是否有人可以告诉我如何从这个二进制文件中提取int16值列表?

提前致谢

using (var file = File.Create(fileName))
using (view.IncidentWriter = new BinaryWriter(file))
{
    foreach (short dataItem in view.Data)
    {
        view.IncidentWriter.Write(dataItem);
    }
}

2 个答案:

答案 0 :(得分:5)

binary reader是二元作家的朋友,你可以把它变成你的

答案 1 :(得分:2)

最简单的方法是在数据前加上预期的数量:

        var list = new List<short>{1,2,3,4,5};
        using (var file = File.Create("my.data"))
        using (var writer = new BinaryWriter(file))
        {
            writer.Write(list.Count);
            foreach(var item in list) writer.Write(item);
        }

        using (var file = File.OpenRead("my.data"))
        using (var reader = new BinaryReader(file))
        {
            int count = reader.ReadInt32();
            list = new List<short>(count);
            for (int i = 0; i < count; i++)
                list.Add(reader.ReadInt16());
        }

否则,您必须检测EOF,这对Stream很容易,但BinaryReader会很痛。