C# 二进制返回列表<;Int16>;

C# 二进制返回列表<;Int16>;,c#,winforms,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);

我已经使用二进制编写器将值列表写入二进制文件

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

提前谢谢

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

二进制编写器是二进制编写器的朋友,您可以将其归为自己的

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

        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());
        }
var list=新列表{1,2,3,4,5};
使用(var file=file.Create(“my.data”))
使用(var writer=newbinarywriter(文件))
{
writer.Write(list.Count);
foreach(列表中的var项)writer.Write(项);
}
使用(var file=file.OpenRead(“my.data”))
使用(变量读取器=新二进制读取器(文件))
{
int count=reader.ReadInt32();
列表=新列表(计数);
for(int i=0;i

否则,您必须检测EOF,这对于
流来说很容易,但是对于
二进制读取器来说很麻烦,您到底是如何编写它们的?任何序言,如项目计数?使用以下内容,我编辑了上面的文章,包括它的写作方式