2011-03-01 78 views
2

我已经写了一个二进制文件使用二进制文件的值的列表。二进制回到列表<Int16>

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

在此先感谢

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

你是怎么写的?任何序言,如项目数量? – 2011-03-01 10:54:44

+0

使用以下,我编辑上面的帖子,包括它写的方式 – user636438 2011-03-01 10:58:37

回答

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疼痛。

+0

非常感谢你! :) – user636438 2011-03-01 20:47:23