将数据(对象)转换为文件格式字节数组

时间:2015-01-05 13:02:22

标签: c# file format

我想将一些测量数据保存到文件中。为了在其他应用程序中使用该文件,我必须将数据带入特定的文件格式。我有一张包含以下信息的表格:

  • 偏移
  • 字节
  • 类型
  • 描述

表示标题的每个元素。

所以,我必须以这种格式转换我的对象的所有信息。有一个简单的方法吗?是制作大字节数组并将此信息填入数组的正确方法吗?

1 个答案:

答案 0 :(得分:0)

如果要转换数据并写入文件,只需转换并编写即可。 这是最简单的方法。示例代码:

struct Data
{
    int offset;
    byte[] bytes;
    byte type;
    string description;
}

void WriteDataToStream(Stream outputStream, List<Data> data)
{
    using(var bw = new BinaryWriter(outputStream))
    {
        foreach(var d in data)
        {
            bw.Write(d.offset);
            bw.Write(d.bytes, 0, d.bytes.Length);
            bw.Write(d.type);
            bw.Write(d.description);
        }
    }
}

流可能是FileStream。请注意,BinaryWriter将在Dispose处关闭基本流,但您可以显式转换数据并自行写入基本流作为字节数组。


其他方式,您可以实现ISerealizable接口。我认为这将是最简单的。